Part2.5 P1208 混合牛奶 【贪心】
原题链接:P1208 [USACO1.3]混合牛奶 Mixing Milk - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
题意:给出 Marry 乳业每天对牛奶的需求量,还有每位奶农提供的牛奶单价和产量。计算采购足够数量的牛奶所需的最小花费。
思路:结构体存储节点信息,排序后从小到大计算价格指导符合要求为止
评价:贪心
1 #include2 using namespace std; 3 struct node 4 { 5 int p,tot; 6 }d[2000005]; 7 bool cmp(node a,node b) 8 { 9 return a.p<b.p; 10 } 11 int main() 12 { 13 int sum,n,pay=0; 14 scanf("%d %d",&sum,&n); 15 for(int i=0;i ) 16 { 17 int p,tot; 18 scanf("%d %d",&d[i].p,&d[i].tot); 19 } 20 sort(d,d+n,cmp); 21 for(int i=0;i ) 22 { 23 if(sum>=d[i].tot) 24 { 25 pay+=d[i].tot*d[i].p; 26 sum-=d[i].tot; 27 } 28 else 29 { 30 pay+=d[i].p*sum; 31 sum=0; 32 } 33 if(sum==0) break; 34 } 35 printf("%d",pay); 36 return 0; 37 }