NOIP2012模擬10 6 購買

2021-09-24 23:21:21 字數 1204 閱讀 9510

description

小n 最近迷上了購物每天都讓小a 和小t 陪她逛街拿東西。最近商店出了這樣的乙個

活動:買東西送積分,就是買一件物品,送當前物品的積分ci*當前的倍率,初始倍率是1;

當倍率是i 的時候,如果你買的物品等於ti 個,那麼倍率將加1.最多積分的人可以得到超限

量版的圓神手辦。小n 十分喜歡這個手辦但是她又有自己的購物計畫,於是她想在這個計

劃下盡量提高自己的積分。她有n 種東西要買,其中第i 種物品她要買ki 個,每個可以得到

ci 的積分。請告訴她積分最多能得到多少吧。

input

第一行有乙個整數n表示要買的種類。

接下來n行每行2個整數ki,ci表示數量和積分

接下來一行有乙個正整數t表示獎勵的倍數

接下來一行有t個遞增的整數ti表示買了ti個物品之後以後買的物品得到的積分倍率將是(i+1)

output

乙個整數,表示小n能得到的最多積分

sample input

15 3

23 6

sample output

21data constraint

hint

前3個物品得到的積分是3 * 3 * 1=9,後面2個物品的積分是3 * 2 * 2=12

60%的資料n<=10,sigma(ki)<=1000000

100%的資料n<=100,t<=100,ki<=10 ^ 9,0<=ci<=1000,ti<=10^12..

...分析

貪心從小到大排序ki

用小的ki把前面的ti填滿,再用後面大的倍率把剩下的ki乘起來加上

這樣才積分最大化..

....

程式:

#include#include#include#includeusing namespace std;

long long tj=0,ans=0,t[110],sum=0;

int n,m;

struct edge

a[110];

bool cmp(edge x,edge y)

else

if (t[p]==a[q].k)

if (p>m)

}printf("%lld",ans);

return 0;

}

NOIP2012模擬10 6 購買

description 小n 最近迷上了購物每天都讓小a 和小t 陪她逛街拿東西。最近商店出了這樣的乙個 活動 買東西送積分,就是買一件物品,送當前物品的積分ci 當前的倍率,初始倍率是1 input 第一行有乙個整數n表示要買的種類。接下來n行每行2個整數ki,ci表示數量和積分 接下來一行有乙個...

NOIP2012模擬10 6 填充棋盤

description 橫一劃豎一劃,橫一劃豎一劃 小r畫出了乙個n m的棋盤。由於noip快要到了,小r有了乙個奇妙的想法。在棋盤的每乙個小方格中填入n,o,i,p這4個字母中的乙個,若棋盤中每乙個2 2的小棋盤中都有n,o,i,p這4個字母,小r就認為這個棋盤是幸運棋盤。小r想知道一共有多少種不...

NOIP2012模擬10 25 旅行

給定乙個n行m列的字元矩陣,代表空地,x 代表障礙。移動的規則是 每秒鐘以上下左右四個方向之一移動一格,不能進入障礙。計算 在空地中隨機選擇起點和終點 可以重合,此時最短耗時為0 從起點移動到終點最短耗時的平均值。每一行每一列至多有1個障礙,並且障礙不在對角線方向相鄰。以下矩陣是不合法的 x x.第...