國王的遊戲(貪心 高精度)

2021-10-09 03:47:20 字數 1706 閱讀 9876

恰逢 h 國國慶,國王邀請 n 位大臣來玩乙個有獎遊戲。首先,他讓每個大臣在左、右手上面分別寫下乙個整數,國王自己也在左、右手上各寫乙個整數。然後,讓這 n 位大臣排成一排,國王站在隊伍的最前面。排好隊後,所有的大臣都會獲得國王獎賞的若干金幣,每位大臣獲得的金幣數分別是:排在該大臣前面的所有人的左手上的數的乘積除以他自己右手上的數,然後向下取整得到的結果。

國王不希望某乙個大臣獲得特別多的獎賞,所以他想請你幫他重新安排一下隊伍的順序,使得獲得獎賞最多的大臣,所獲獎賞盡可能的少。注意,國王的位置始終在隊伍的最前面。

輸入描述:

第一行包含乙個整數 n ,表示大臣的人數。

第二行包含兩個整數 a 和 b ,之間用乙個空格隔開,分別表示國王左手和右手上的整數。

接下來 n 行,每行包含兩個整數 a 和 b ,之間用乙個空格隔開,分別表示每個大臣左手和右手上的整數。

輸出描述:

乙個整數,表示重新排列後的隊伍中獲獎賞最多的大臣所獲得的金幣數。

示例1輸入

31 1

2 37 4

4 6輸出

2問題分析:

**實現:

#include

#include

#include

using

namespace std;

typedef

struct node

node;

node node[

1005];

bool

cmp(node x,node y)

vector<

int>

mul(vector<

int>

&a,int x)

while

(b.size()

>

1&&b.

back()

==0) b.

pop_back()

;return b;

}vector<

int>

div(vector<

int>

&a,int x)

reverse

(b.begin()

,b.end()

);while

(b.size()

>

1&&b.

back()

==0) b.

pop_back()

;return b;

}vector<

int>

max_value

(vector<

int>a,vector<

int>b)

}

int

main

(int argc,

char

*ar**)

for(i=

1;i<=n;i++

)for

(int i=ans.

size()

-1;i>=

0;i--

) cout<

; cout<

return0;

}

國王遊戲 貪心 高精度

關於高精度演算法的小理解大家可以看看我的文章嘿嘿嘿 高精度演算法 一.題目描述 恰逢 h 國國慶,國王邀請 n 位大臣來玩乙個有獎遊戲。首先,他讓每個大臣在左 右手上面分別寫下乙個整數,國王自己也在左 右手上各寫乙個整數。然後,讓這 n 位大臣排成一排,國王站在隊伍的最前面。排好隊後,所有的大臣都會...

貪心 高精度 國王遊戲

恰逢 h 國國慶,國王邀請 n 位大臣來玩乙個有獎遊戲。首先,他讓每個大臣在左 右手上面分別寫下乙個整數,國王自己也在左 右手上各寫乙個整數。然後,讓這 n 位大臣排成一排,國王站在隊伍的最前面。排好隊後,所有的大臣都會獲得國王獎賞的若干金幣,每位大臣獲得的金幣數分別是 排在該大臣前面的所有人的左手...

noip 國王遊戲 貪心 高精度

說實話我一開始是不想發這道題的,雖然比較水,但不知道是不是因為我太久都沒有寫高精度了,還是寫錯了,才40分,還是發上來吧。恰逢h國國慶,國王邀請n位大臣來玩乙個有獎遊戲。首先,他讓每個大臣在左 右手上面分別寫下乙個整數,國王自己也在左 右手上各寫乙個整數。然後,讓這n位大臣排成一排,國王站在隊伍的最...