1. 程式人生 > >CODE[VS] 1621 混合牛奶 USACO

CODE[VS] 1621 混合牛奶 USACO

牛奶 mes () 整數 inpu rip break 等於 names

題目描述 Description

牛奶包裝是一個如此低利潤的生意,所以盡可能低的控制初級產品(牛奶)的價格變的十分重要.
請幫助快樂的牛奶制造者(Merry Milk Makers)以可能的最廉價的方式取得他們所需的牛奶.
快樂的牛奶制造公司從一些農民那購買牛奶,每個農民賣給牛奶制造公司的價格不一定相同.
而且,如一只母牛一天只能生產一定量的牛奶,農民每一天只有一定量的牛奶可以賣.
每天,快樂的牛奶制造者從每個農民那購買一定量的牛奶,少於或等於農民所能提供的最大值.
給出快樂牛奶制造者的每日的牛奶需求,連同每個農民的可提供的牛奶量和每加侖的價格,請計算快樂的牛奶制造者所要付出錢的最小值.

註意:


每天農民生產的牛奶的總數對快樂的牛奶制造者來說足夠的.

輸入描述 Input Description

第 1 行:二個整數, N 和 M.
N(0<= N<=2,000,000)是快樂的牛奶制造者的一天需要牛奶的數量.
M(0<= M<=5,000)是農民的數目.

第 2 到 M+1 行:每行二個整數,Pi 和 Ai.
Pi(0<= Pi<=1,000) 是農民 i 牛奶的價格.
Ai(0 <= Ai <= 2,000,000)是農民 i 一天能賣給快樂的牛奶制造者的牛奶數量.

輸出描述 Output Description

單獨的一行包含單獨的一個整數,表示快樂的牛奶制造者拿到所需的牛奶所要的最小費用

樣例輸入 Sample Input

100 5
5 20
9 40
3 10
8 80
6 30

樣例輸出 Sample Output

630

我真厲害,

hh。

基礎題,

按價格排序,

價格低者先購買。

代碼:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<algorithm>
 5
#include<cstring> 6 using namespace std; 7 8 int n,m; 9 long long ans,q; 10 11 struct node{ 12 int pr,cou; 13 }a[5002]; 14 15 bool cmp(node x,node y) 16 { 17 return x.pr <y.pr ; 18 } 19 20 int main() 21 { 22 scanf("%d%d",&n,&m); 23 for(int i=1;i<=m;++i) 24 scanf("%d%d",&a[i].pr ,&a[i].cou ); 25 sort(a+1,a+m+1,cmp); 26 for(int i=1;i<=m;++i) 27 { 28 if(n-q<=a[i].cou ) 29 { 30 ans+=a[i].pr *(n-q); 31 break; 32 } 33 if(q==n) break; 34 q+=a[i].cou ; 35 ans+=a[i].pr *a[i].cou ; 36 } 37 printf("%lld",ans); 38 return 0; 39 }


如果你不開心,那我就把右邊技術分享圖片這個帥傻子分享給你吧,


你看,他這麽好看,那麽深情的望著你,你還傷心嗎?


真的!這照片盯上他五秒鐘就想笑了。


一切都會過去的。

CODE[VS] 1621 混合牛奶 USACO