P1080 國王遊戲 題解(高精度乘除 貪心)

2021-09-27 19:35:35 字數 1704 閱讀 9969

p1080 國王遊戲 題解

題目描述

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

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

輸入格式

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

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

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

輸出格式

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

輸入輸出樣例

輸入

3 

1 1

2 3

7 4

4 6

輸出

2我太難了。。各種小問題。。。。

因為要使得獲得獎賞最多的大臣,所獲獎賞盡可能的少。而大臣獲得的金幣數是前面所有大臣的左手金幣的乘積除自己右手的金幣數,所以大臣左右手金幣的乘積越大,越要放到後面,這樣才可以使前面的人和自己獲得的金幣盡可能少。

還有高精度,要多練幾遍。

#include

#include

#include

#include

using

namespace std;

const

int inf=

0x3f3f3f

;int ans[

10000

],m[

10000]=

,lenm=

1,lens=

1,lend=

1,sum[

10000]=

;struct nodes[

1005];

bool

cmp(

struct node x,

struct node y)

void

mulitlpy

(long

long x)

for(

int i=

1;i<=lens;i++

)while

(t!=0)

}void

division

(long

long x)

}while

(ans[lend]==0

)}void

solve()

lenm=lend;

}else

if(lenm==lend)}}

}int

main()

sort

(s+1

,s+1

+n,cmp)

;for

(i=1

;i<=n;i++

)for

(i=lenm;i>=

1;i--

)printf

("%d"

,m[i]);

return0;

}

P1080 國王遊戲 高精度 1

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

洛谷P1080 國王遊戲 高精度

題目鏈結 題目描述恰逢 h h 國國慶,國王邀請 n role presentation n n 位大臣來玩乙個有獎遊戲。首先,他讓每個大臣在左 右手上面分別寫下乙個整數,國王自己也在左 右手上各寫乙個整數。然後,讓這 n n 位大臣排成一排,國王站在隊伍的最前面。排好隊後,所有的大臣都會獲得國王獎...

題解 P1080 國王遊戲

題目鏈結 題目大意 有很多個人,每個人左手上有乙個數 l i 右手有乙個數 r i 重新安排佇列順序 國王位置不能動 使得 max l i rfloor 盡量小 貪心 這題的貪心應該還是非常好想的,只不過要寫高精度就實在有些噁心了 主要是我懶 於是乎,我就直接上了python 詳細都在注釋裡了 cl...