蒜頭君在玩一種卡牌遊戲,他有 n 張卡牌,每張卡牌上寫著兩個正整數 ai,bi ,ai 表示這張卡牌的能量值,bi表示這張卡牌的魔法值。
蒜頭君要從這 n張卡牌中選出一些形成乙個卡組,用這個卡組對敵人造成傷害。乙個卡組對敵人的傷害是這個卡組中所有卡牌的能量值之和乘其中魔法值最小的一張卡牌的魔法值。
蒜頭君想知道他用乙個卡組最多能對敵人產生多少傷害。
輸入格式
第一行,乙個正整數 n(1≤n≤10的5次方)。
接下來 n行,每行兩個正整數 ai,bi(1≤ai,bi≤10的6次方)
輸出格式
輸出一行,包含乙個整數,表示蒜頭君用乙個卡組對敵人產生的傷害的最大值。
資料範圍
對於 70%的資料,1≤n≤10的3次方,1≤ai,bi≤10的3次方
對於 100%的資料,1≤n≤10的5次方,1≤ai,bi≤10的6次方
sample input
3
1 23 4
5 6
sample output
32
我一開始用的是二維陣列,但是超時了,於是求助大佬學習了結構,寫下來這道題,要想辦法知道最大值,就得把魔法值排序,然後能量值可以相加並且乘以魔法值,以此來求最大值。感謝我韜哥帶飛。最後附上**。
#include
#include
using
namespace std;
struct game
;bool
cmp(game g,game gg)
intmain()
sort
(g,g+n,cmp)
;//從大到小排序(bool cmp)
for(i=
0;icout
}
卡牌遊戲II bfs
有n張卡片,上面印著整數a1,a2,a3 an,可以選取其中任意數量張卡片,求出乙個和s,共有2 n 1個和 要求出最小的前n個和分別是多少 題目包含多組資料。輸入的每一行有乙個整數t 1 t 5 代表有t組資料 對於每組資料分為兩行 第一行有兩個整數n,k 其中1 n 200000,1 k min...
卡牌遊戲期望
題目描述好像有點問題。應該是n種卡牌。m種稀有卡牌,且抽出不放回。對於求期望來說,相比之下我們更容易求出概率。而對於此類題目 期望往往 1 概率 暫時這麼理解的 而期望具有可加性。把所有稀有卡牌都抽一遍的期望 每次抽得乙個稀有卡牌的期望的和。至少抽出k張稀有卡牌的期望 抽出k張每次抽的乙個稀有卡牌的...
B 卡牌遊戲 IV
b 卡牌遊戲 iv 蒜頭君在玩一種卡牌遊戲,他有 n 張卡牌,每張卡牌上寫著兩個正整數 ai,bi ai 表示這張卡牌的能量值,bi表示這張卡牌的魔法值。他準備一張一張打出這 n張卡牌,每張卡牌會對敵人造成的傷害是這張卡牌的能量值乘魔法值。但是蒜頭君覺得這樣把這 n張卡牌都出完對敵人造成的傷害之和還...