1. 程式人生 > 其它 >Part2.5 P1208 混合牛奶 【貪心】

Part2.5 P1208 混合牛奶 【貪心】

原題連結:P1208 [USACO1.3]混合牛奶 Mixing Milk - 洛谷 | 電腦科學教育新生態 (luogu.com.cn)

題意:給出 Marry 乳業每天對牛奶的需求量,還有每位奶農提供的牛奶單價和產量。計算採購足夠數量的牛奶所需的最小花費。

思路:結構體儲存節點資訊,排序後從小到大計算價格指導符合要求為止

評價:貪心

 1 #include<bits/stdc++.h>
 2 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<n;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<n;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 }