P1080 国王游戏
題目描述
恰逢 H 國國慶,國王邀請(qǐng) n 位大臣來玩一個(gè)有獎(jiǎng)游戲。首先,他讓每個(gè)大臣在左、右手上面分別寫下一個(gè)整數(shù),國王自己也在左、右手上各寫一個(gè)整數(shù)。然后,讓這 n 位大臣排成一排,國王站在隊(duì)伍的最前面。排好隊(duì)后,所有的大臣都會(huì)獲得國王獎(jiǎng)賞的若干金幣,每位大臣獲得的金幣數(shù)分別是:排在該大臣前面的所有人的左手上的數(shù)的乘積除以他自己右手上的數(shù),然后向下取整得到的結(jié)果。
國王不希望某一個(gè)大臣獲得特別多的獎(jiǎng)賞,所以他想請(qǐng)你幫他重新安排一下隊(duì)伍的順序,使得獲得獎(jiǎng)賞最多的大臣,所獲獎(jiǎng)賞盡可能的少。注意,國王的位置始終在隊(duì)伍的最前面。
輸入輸出格式
輸入格式:
?
第一行包含一個(gè)整數(shù) n,表示大臣的人數(shù)。
第二行包含兩個(gè)整數(shù) a和 b,之間用一個(gè)空格隔開,分別表示國王左手和右手上的整數(shù)。
接下來 n 行,每行包含兩個(gè)整數(shù) a 和 b,之間用一個(gè)空格隔開,分別表示每個(gè)大臣左手和右手上的整數(shù)。
?
輸出格式:
?
輸出只有一行,包含一個(gè)整數(shù),表示重新排列后的隊(duì)伍中獲獎(jiǎng)賞最多的大臣所獲得的金幣數(shù)。
?
輸入輸出樣例
輸入樣例#1:3 1 1 2 3 7 4 4 6 輸出樣例#1:
2
說明
【輸入輸出樣例說明】
按 1、2、3 號(hào)大臣這樣排列隊(duì)伍,獲得獎(jiǎng)賞最多的大臣所獲得金幣數(shù)為 2;
按 1、3、2 這樣排列隊(duì)伍,獲得獎(jiǎng)賞最多的大臣所獲得金幣數(shù)為 2;
按 2、1、3 這樣排列隊(duì)伍,獲得獎(jiǎng)賞最多的大臣所獲得金幣數(shù)為 2;
按 2、3、1 這樣排列隊(duì)伍,獲得獎(jiǎng)賞最多的大臣所獲得金幣數(shù)為 9;
按 3、1、2 這樣排列隊(duì)伍,獲得獎(jiǎng)賞最多的大臣所獲得金幣數(shù)為 2;
按 3、2、1 這樣排列隊(duì)伍,獲得獎(jiǎng)賞最多的大臣所獲得金幣數(shù)為 9。
因此,獎(jiǎng)賞最多的大臣最少獲得 2 個(gè)金幣,答案輸出 2。
【數(shù)據(jù)范圍】
對(duì)于 20%的數(shù)據(jù),有 1≤ n≤ 10,0 < a、b < 8;
對(duì)于 40%的數(shù)據(jù),有 1≤ n≤20,0 < a、b < 8;
對(duì)于 60%的數(shù)據(jù),有 1≤ n≤100;
對(duì)于 60%的數(shù)據(jù),保證答案不超過 10^9;
對(duì)于 100%的數(shù)據(jù),有 1 ≤ n ≤1,000,0 < a、b < 10000。
NOIP 2012 提高組 第一天 第二題
?
?
不想寫高精.jpg.
思路很簡單,就是把a(bǔ)*b從小到大排序
1.證明:
1)知道,如果相鄰的兩個(gè)人交換位置,只會(huì)影響到這兩個(gè)人的值,不會(huì)影響他人
2)假設(shè)相鄰的兩個(gè)人i, i + 1。設(shè)A[i]?B[i] <= A[i + 1]?B[i + 1],i之前所有人的左手乘積為S。
則,ans1 = max{S / B[i], S * A[i] / B[i + 1]}
若交換
則,ans2 = max{S / B[i + 1], S * A[i + 1] / B[i]}
因?yàn)?#xff0c;A[i]?B[i] <= A[i + 1]?B[i + 1]
所以,S?A[i] / B[i + 1] <= S?A[i + 1] / B[i]
又因?yàn)?#xff0c;S / B[i + 1] <= S * A[i] / B[i + 1]
所以,ans2 = S * A[i + 1] / B[i]
ans1 = max{S / B[i], S * A[i] / B[i + 1]}
所以,ans1 <= ans2
2.證明:
取 log 變成加法.
其實(shí)只與相鄰兩人的順序有關(guān).
前后的人他們都影響不了.
推一推式子. 假設(shè)有倆人 i,j.
i 在 j 前面的答案是
max{?b i ,a i ? b j }
i 在 j 后面的答案是
max{?b j ,a j ? b i }
顯然 ?b j < a i ? b j ,?b i < a j ? b i .
所以 a i ? b j < a j ? b i .
所以 a i + b i < a j + b j
?
轉(zhuǎn)載于:https://www.cnblogs.com/zwfymqz/p/7297446.html
總結(jié)
以上是生活随笔為你收集整理的P1080 国王游戏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: weak_ptr打破环状引用
- 下一篇: 简易商品购物车