题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1070
题意:一个人喝牛奶,有三个原则:
1、牛奶的日期不超过6天,就是最多5天。
2、每次只喝200ml,所以只要有低于200的牛奶就舍弃
3、每天就喝200ml;
超市每天卖当天生产的牛奶。
输出:输出性价比最高的牛奶,如果有性价比相同的,就输出容积最大的(所以需要记录牛奶原来的容积,这里一直错了3次)
#include<iostream> #include<cstdio> #include<string> #include<vector> #include<algorithm> using namespace std; struct Node{ string name; int price,vol,v; double w; }; bool cmp(Node a,Node b) { if(a.w!=b.w) return a.w>b.w; else return a.v>b.v; } vector <Node> vc; int main(void) { int n,p,v,t; string str; Node tmp; scanf("%d",&t); while(t--) { scanf("%d",&n); vc.clear(); while(n--) { cin>>str>>p>>v; if(v<200) continue; tmp.name=str; tmp.v=v; tmp.vol=(v>=1000?5:v/200)*200; tmp.price=p; tmp.w=1.0*tmp.vol/tmp.price; vc.push_back(tmp); } sort(vc.begin(),vc.end(),cmp); cout<<vc[0].name<<endl; } return 0; }
原文地址:https://www.cnblogs.com/2018zxy/p/9750018.html
时间: 2024-11-05 14:07:48