poj之旅——3262

来源:互联网 发布:淘宝卖家常用语 编辑:程序博客网 时间:2024/06/05 02:56

题目描述:约翰的奶牛每分钟吃掉D_i朵花,把它赶走需要T_i分钟(来回加倍)。问最小损失花朵数量。



题解:贪心策略是先尽量赶走吃得多并且走得慢的牛,如何衡量“多”“慢”?按照单位时间的损害,较大的既是——吃得多并且走得慢的牛。


参考程序:

#include<cstdio>#include<algorithm>#include<iostream>#define maxn 100000using namespace std;struct Cow{int T,D;};Cow cow[maxn];bool cmp(Cow a,Cow b){return a.T*b.D<b.T*a.D;}int main(){int N,tot=0;scanf("%d",&N);for (int i=0;i<N;i++)scanf("%d %d",&cow[i].T,&cow[i].D),tot+=cow[i].D;    sort(cow,cow+N,cmp);long long res=0;for (int i=0;i<N;i++){tot-=cow[i].D;res+=tot*2*cow[i].T;}cout<<res;return 0;}


0 0
原创粉丝点击