此篇文章的**來自@chlience,未經允許私自借用,十分不好意思。
拿到這個題目,我根本沒有注意到資料範圍竟然會超long long,真的是第一次做這種貪心題竟然需要寫高精度。(做的題太少了,所以沒見過,所以蒻)
簡化一下問題,假如只有國王和兩個大臣,總共三個人:如下圖
king
a0b0
p1a1
b1p2
a2b2
此時ans1 = max(a0/b1,(a0*a1)/b2)
king
a0b0
p2a2
b2p1
a1b1
此時ans2 = max(a0/b2,(a0*a2)/b1)
顯然可以化簡為ans1 = max(k1,k2)
ans2 = max(k3,k4)
則有 k2>k3, k4>k1
若ans1則 k4>k2
則 (a0*a2)/b1>(a0*a1)/b2
變換得:a1*b1至此,我們得出了cmp()函式的寫法。
然後,在此奉上@chlience的**:
#include using namespace std;
int now[20010],sum[20010],ans[20010],add[20010];
struct node node[1010];
void times(int x)
for(int i=1;i<=ans[0]+4;i++)
if(ans[i]!=0)
}return ;
}int divition(int x)
q%=x;
}return 0;
}bool compare()
return ;
}bool cmp(node a,node b)
sort(node+1,node+n+1,cmp);
ans[0]=1,ans[1]=1;
for(int i=1;i<=n;i++)
}for(int i=sum[0];i>=1;i--)
printf("%d",sum[i]);
return 0;
}
自己還是太蒻了,高精度板子會寫(抄),放在實際的應用裡面就一團亂。 洛谷P1080 國王遊戲 貪心 高精度
p1080 國王遊戲 啊啊啊,剛才已經寫了一次了,但是edge瀏覽器不知道為什麼卡住了,難受。好吧,其實是一道可做題,分析得到的貪心策略就是就是將a b小的放在前面 其他的懶得說了 主要還是要會高精度,要不然寫不出來。ac 借鑑題解大佬的,我自己寫不出來,主要是高精度不太會 include incl...
洛谷P1080 國王遊戲 高精度
題目鏈結 題目描述恰逢 h h 國國慶,國王邀請 n role presentation n n 位大臣來玩乙個有獎遊戲。首先,他讓每個大臣在左 右手上面分別寫下乙個整數,國王自己也在左 右手上各寫乙個整數。然後,讓這 n n 位大臣排成一排,國王站在隊伍的最前面。排好隊後,所有的大臣都會獲得國王獎...
洛谷 P1080 國王遊戲(貪心 高精 排序)
題目 標籤 貪心 高精 排序 題解 參考dalao的推導過程 有中間兩個人 i 和 i 1,顯然他們倆怎麼排對後面沒有影響 因為只跟乘積有關 記 p 為國王到 i 1 個人的 左手數的乘積 所以若不換的話,顯然 max max 否則換更優 即不換的最大值 換的最大值 兩邊都除以p得 max max ...