題目描述由于乳制品產業利潤很低,所以降低原材料(牛奶)價格就變得十分重要。幫助Marry乳業找到最優的牛奶采購方案。Marry乳業從一些奶農手中采購牛奶,并且每一位奶農為乳制品加工企業提供的價格是不同的。此外,就像每頭奶牛每天只能擠出固定數量的奶,每位奶農每天能提供的牛奶數量是一定的。每天Marry乳業可以從奶農手中采購到小于或者等于奶農最大產量的整數數量的牛奶。給出Marry乳業每天對牛奶的需求量,還有每位奶農提供的牛奶單價和產量。計算采購足夠數量的牛奶所需的最小花費。注:每天所有奶農的總產量大于Marry乳業的需求量。輸入輸出格式輸入格式:第 1 行共二個數值: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 一天能賣給Marry的牛奶制造公司的牛奶數量。輸出格式:單獨的一行包含單獨的一個整數,表示Marry的牛奶制造公司拿到所需的牛奶所要的最小費用。輸入輸出樣例輸入樣例#1:100 55 209 403 108 806 30輸出樣例#1:630題解:這道題用貪心,f[i]表示單價為i的牛奶的產量,這樣就可以節省排序的時間。var f:array[0..1001]of longint; i,n,m,ans,a,b:longint;begin fillchar(f,sizeof(f),0); readln(m,n); for i:=1 to n do begin readln(a,b); f[a]:=f[a]+b; end; ans:=0; for i:=0 to 1000 do if m>f[i] then begin ans:=ans+f[i]*i;m:=m-f[i]; end else begin ans:=ans+m*i; break; end; write(ans);end.