pat 1020. 月饼

来源:互联网 发布:数据归一化方法及公式 编辑:程序博客网 时间:2024/05/10 03:30

原题链接:

思路:根据单价进行贪心,优先选择单价高的。我想吐槽一点:明明说的正整数,但是库存和总量却有浮点数,坑爹的测试点2,大家注意了

#include<bits/stdc++.h>using namespace std;typedef long long ll;//测试的数据就是坑typedef pair<double,double> P;const int maxn=1005;int n,d;P cake[maxn];bool cmp(P p1,P p2){    return p1.second*p2.first>p1.first*p2.second;}void print(){    for(int i=0;i<n;i++){        cout<<cake[i].first<<" "<<cake[i].second<<endl;    }}void input(){    cin>>n>>d;    for(int i=0;i<n;i++){        cin>>cake[i].first;    }    for(int i=0;i<n;i++){        cin>>cake[i].second;    }    sort(cake,cake+n,cmp);    //print();}void solve(){    double ans=0;    /*if(!d){        cout<<0<<endl;        return;    }*/    for(int i=0;i<n;i++){        if(d<=cake[i].first){            ans+=cake[i].second*1.0/cake[i].first*d;            break;        }else{            ans+=cake[i].second;            d-=cake[i].first;        }    }    printf("%.2f\n",ans);}int main(){    //freopen("in.txt","r",stdin);    input();    solve();    return 0;}
原创粉丝点击