Mixing Milk
Posted wolf940509
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mixing Milk相关的知识,希望对你有一定的参考价值。
分析:水题,按照价格从小到大排序,在进行贪心即可
/* PROB:milk ID:wanghan LANG:C++ */ #include "iostream" #include "cstdio" #include "cstring" #include "string" #include "algorithm" using namespace std; const int maxn= 5000+10; struct Node{ int p,a; }; Node h[maxn]; bool cmp(Node x,Node y){ if(x.p==y.p) return x.a>y.a; return x.p<y.p; } int m; long long n; int main() { freopen("milk.in", "r", stdin); freopen("milk.out", "w", stdout); cin>>n>>m; for(int i=0;i<m;i++) cin>>h[i].p>>h[i].a; sort(h,h+m,cmp); long long ans=0; int flag=0; /*if(n>=h[0].a){ n-=h[0].a; ans+=(h[0].p*h[0].a); if(n==0) flag=1; }else{ flag=1; ans+=(h[0].a-n)*h[0].p; //n=-1; }*/ //cout<<ans<<endl; for(int i=0;i<m;i++){ if(flag) break; if(n>=h[i].a){ n-=h[i].a; ans+=(h[i].a*h[i].p); if(n==0) flag=1; }else{ ans+=n*h[i].p; n=-1; flag=1; } } cout<<ans<<endl; }
以上是关于Mixing Milk的主要内容,如果未能解决你的问题,请参考以下文章
题解 P5116 [USACO18DEC]Mixing Milk
洛谷——P1208 [USACO1.3]混合牛奶 Mixing Milk