hdu-1070(水题)

题目链接: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;
}

猜你喜欢

转载自www.cnblogs.com/2018zxy/p/9750018.html