「使賞賜最多的大臣獲得的賞賜盡可能少」
這類題目要麼是二分,要麼是貪心。emmmmm這題看上去比較像貪心(不要問我為啥就是玄學orz)
考慮兩個大臣x,y,(對於i來說,左手的數字是a[i].l,右手的數字是a[i].r)
如果x排在y前面,
則有:total*a[x].l/a[y].r所以:a[x].l*a[x].r然後排個序就沒了啊……
上**!!!
#include #include #include using namespace std;
const int maxn=1005;
typedef long long ll;
struct node
a[maxn];
int cmp(node x,node y)
{ return x.l*x.remmmm這題是要高精的然而我懶得寫emmmmm
總結一下:
對於這種簡單貪心來說,考慮2個元素滿足什麼條件才能保證x排在y前面
然後總結出公式sort一下就好啦。
嘿嘿嘿超快樂。
noip2012國王遊戲
game.cpp c pas 問題描述 恰逢 h 國國慶,國王邀請 n 位大臣來玩乙個有獎遊戲。首先,他讓每個大臣在左 右 手上面分別寫下乙個整數,國王自己也在左 右手上各寫乙個整數。然後,讓這 n位大臣排 成一排,國王站在隊伍的最前面。排好隊後,所有的大臣都會獲得國王獎賞的若干金幣,每 位大臣獲得...
NOIP2012 國王遊戲
題解 一開始看著題覺得是二分答案 最大值的最小值 後來發現不滿足單調性 再後來發現可以用貪心做 只需把大臣按照左手 右手公升序排序即可 證明 很顯然前面的大臣位置隨便調換對後面的大臣並沒有影響 那麼假設現在已經排了i 1個大臣,p a 1 a 2 a 3 a i 1 第i個大臣的錢w i p b i...
NOIP2012國王遊戲
用貪心可以解決。將所有人按左右手的乘積排序,這樣一定可以保證結果最優。現給出證明 首先,任意相鄰兩人的順序對於排在他們前面和後面的人沒有影響。顯然 兩人左右手上的數字分別為l 1 r 1 l 2 r 2 令l 1 r 1 若1在2前面,那麼兩人分得的金幣分別為sum r 1 sum l 1 r 2 ...