/*我是不會說我考試的時候想到了正解卻把金幣取大看成金幣求和的....
覺得只按左右手乘積排序不太對 有反例 也可能我反例放到這個題裡是錯的吧
按自己的理解排的序 就是各種討論...
假設 第i個人是x1 y1 第i+1個人是x2 y2 前面所有的左手乘積為s
我們通過考慮這兩個人決定排序的規則
答案就是 min(max(s/y1,s*x1/y2),max(s/y2,s*x2/y1))
拿掉s並通分就是 min(max(y2,x1y1),max(y1,x2*y2))
因為每個max裡的值不是只來自乙個人 所以不能簡單地通過某個值或某幾個值來排序
那就討論吧 ^ ^
接下來就是神奇(噁心)的高精...
*/#include
#include
#include
#include
#define maxn 1010
using
namespace
std;
int n,ans[maxn*5],s[maxn][maxn*5
],l[maxn];
struct nodep[maxn];
int cmp(node const &x,const node &y)
else
}void mul(int k,int
x)
while(a[len+1
])
for(int i=1;i<=len;i++)s[k+1][i]=a[i];
l[k+1]=len;
}void del(int k,int
x)
for(int i=len;i;i--)
if(b[i]!=0
)
l[k]=t;
for(int i=1;i<=len;i++)s[k][i]=b[i];
}void big(int
k)
else
if(l[k]0])return
;
else
if(falg==0)return
;
for(int i=1;i<=l[k];i++)
ans[i]=c[i];
ans[
0]=l[k];
}}int
main()
for(int i=1;i<=n;i++)
mul(i-1
,p[i].l);
for(int i=1;i<=n;i++)
for(int i=ans[0];i>=1;i--)
printf("%d
",ans[i]);
return0;
}
NOIP2012 貪心 高精度 國王遊戲
恰逢h國國慶,國王邀請n位大臣來玩乙個有獎遊戲。首先,他讓每個大臣在左 右手上面分別寫下乙個整數,國王自己也在左 右手上各寫乙個整數。然後,讓這n位大臣排成一排,國王站在隊伍的最前面。排好隊後,所有的大臣都會獲得國王獎賞的若干金幣,每位大臣獲得的金幣數分別是 排在該大臣前面的所有人的左手上的數的乘積...
noip2012 國王遊戲《貪心 高精度》
終於過了。這道高精度總算是過了,為了這道題我還特意去學了高精度除以搞精度 雖然最後只需要高精度除以低精度 這道題都是看新番國王遊戲的時候突發奇想跑來做的qaq。這道題的貪心思路是,按照左右手相乘來從小到大排序,乘積相同就按照右手從小到大。至於為什麼這麼貪心,我個人的想法是,將右手數大的盡量排後面 除...
noip2012國王遊戲
game.cpp c pas 問題描述 恰逢 h 國國慶,國王邀請 n 位大臣來玩乙個有獎遊戲。首先,他讓每個大臣在左 右 手上面分別寫下乙個整數,國王自己也在左 右手上各寫乙個整數。然後,讓這 n位大臣排 成一排,國王站在隊伍的最前面。排好隊後,所有的大臣都會獲得國王獎賞的若干金幣,每 位大臣獲得...