B 卡牌遊戲 IV

2021-10-10 21:04:54 字數 1116 閱讀 4731

b - 卡牌遊戲 iv

蒜頭君在玩一種卡牌遊戲,他有 n 張卡牌,每張卡牌上寫著兩個正整數 ai,bi ,ai 表示這張卡牌的能量值,bi表示這張卡牌的魔法值。

他準備一張一張打出這 n張卡牌,每張卡牌會對敵人造成的傷害是這張卡牌的能量值乘魔法值。但是蒜頭君覺得這樣把這 n張卡牌都出完對敵人造成的傷害之和還是不夠大,所以他偷偷學會了一種仙術。

蒜頭君施展一次仙術的時候會任意選擇兩張卡牌,把它們的魔法值交換,能量值不交換。蒜頭君可以使用任意次仙術,當然也可以一次都不使用,他想知道使用了若干次仙術以後一張一張打出這 n張卡牌,對敵人造成的傷害之和最大是多少。

輸入格式

第一行,乙個正整數 n(1≤n≤105)。

接下來 n行,每行兩個正整數 ai,bi(1≤ai,bi≤106)

輸出格式

輸出一行,包含乙個整數,表示蒜頭君使用若干次仙術以後一張一張打出卡牌,對敵人造成的傷害之和的最大值。

資料範圍

對於 70%的資料,1≤n≤10的3次方,1≤ai,bi≤10的3次方

對於 100%的資料,1≤n≤10的5次方,1≤ai,bi≤10的6次方

sample input

3

1 63 4

5 2

sample output

44
注意題目給的要求10的6次方,所以我用了long long int,然後這題的題意理解一下大概就是當成一棵哈夫曼樹求最大權值。就魔法值最大的和能量值最大的相乘,排下去就是最大值了。最後附上**。

#include

#include

using

namespace std;

intmain()

sort

(a,a+n)

,sort

(b,b+n)

;long

long

int sum=0;

for(

int i=

0;i) cout

}

c 初級 卡牌遊戲 IV

卡牌遊戲 iv 蒜頭君在玩一種卡牌遊戲,他有n張卡牌,每張卡牌上寫著兩個正整數 ai,bi,ai表示這張卡牌的能量值,bi表示這張卡牌的魔法值。他準備一張一張打出這 n張卡牌,每張卡牌會對敵人造成的傷害是這張卡牌的能量值乘魔法值。但是蒜頭君覺得這樣把這 n張卡牌都出完對敵人造成的傷害之和還是不夠大,...

B 卡牌對戰遊戲(動態RMQ)

傳送門 1.因為一點小失誤,一直沒調出來,有點可惜 2.實際上有點lis的感覺,我們設d i d i d i 表示從i ii開始的攻擊力最大值,b i b i b i 為位置i ii的攻擊力,那麼可以得出 d i ma x d i b i d j j id i m ax d i b i d j j ...

卡牌遊戲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...