HDU 1070 Milk
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU 1070 Milk相关的知识,希望对你有一定的参考价值。
选择最便宜的牛奶品牌;牛奶容量最多能喝5天,1天喝200ML,总共为1000ML。牛奶能喝的天数是整数=(int)容量/200。忽略容量小于200ML的牛奶。单价相同的情况下选择容量大的。
附代码
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using namespace std; 5 const int N=105; 6 struct Brand { 7 char c[N]; 8 double cst;//总价 9 int siz;//容量 10 double prz;//单价 11 }; 12 double dl(int siz,double cst) { 13 if(siz>=1000) { 14 return cst/5; 15 } else if(siz>=200){ 16 return cst/(siz/200); 17 } else{ 18 return 100000;//表示单价非常大 19 } 20 21 } 22 int main() { 23 freopen("C:\\CODE\\in.txt", "r", stdin); 24 //freopen("C:\\CODE\\out.txt","w",stdout); 25 int T,n; 26 int res; 27 Brand b[N]; 28 while(~scanf("%d",&T)) { 29 while(T--) { 30 scanf("%d",&n); 31 res=0; 32 for(int i=0; i<n; i++) { 33 scanf("%s%lf%d",b[i].c,&b[i].cst,&b[i].siz); 34 b[i].prz=dl(b[i].siz,b[i].cst); 35 36 } 37 double mn=b[0].prz; 38 for(int i=0; i<n; i++) { 39 //循环找单价小的品牌 40 if(b[i].prz<mn) { 41 mn=b[i].prz; 42 res=i; 43 } 44 } 45 int mx=b[res].siz; 46 for(int i=0; i<n; i++) { 47 //循环找容量大的品牌 48 if(b[i].prz==mn) { 49 if(b[i].siz>mx) { 50 mx=b[i].siz; 51 res=i; 52 } 53 } 54 } 55 printf("%s\n",b[res].c); 56 } 57 58 } 59 60 fclose(stdin); 61 return 0; 62 } 63
以上是关于HDU 1070 Milk的主要内容,如果未能解决你的问题,请参考以下文章