hdu 1070 Milk
链接:点击打开链接
题意:Ignatius买牛奶,有四个要求:
1.不会喝生产日期超过六天的牛奶,假如生产期1月1日,1月6日他将不会喝
2.每天喝200ml
3.如果牛奶剩下的少于200,将扔掉
4.在超市的牛奶都是今天生产的
现在Ignatius将买一瓶牛奶,求买那种牛奶更便宜。
思路:根据每天的花费排序,若每天的花费相同,则选择容量大的。
代码:
#include<iostream> #include<math.h> #include<string> #include<algorithm> using namespace std; #define inf 0x3ffffff struct node { string name; int p,v; double t;//每天的价格 }a[100000]; bool cmp(node x,node y) { if(x.t!=y.t) return x.t<y.t; else return x.v>y.v; } int main() { int num; cin>>num; while(num--) { int n; cin>>n; for(int i=0;i<n;i++) { cin>>a[i].name>>a[i].p>>a[i].v; if(a[i].v<200) a[i].t=inf; else if(a[i].v>1000)//能喝5天 a[i].t=a[i].p*1.0/5; else a[i].t=a[i].p*1.0/(a[i].v/200);//喝不满五天 } sort(a,a+n,cmp); cout<<a[0].name<<endl; } }