ETH官方钱包

切換
舊版
前往
大廳
主題

ZeroJudge - b947: 3rd CPSC Problem 2--總統(tǒng)大選 解題心得

Not In My Back Yard | 2018-09-30 18:49:16 | 巴幣 2 | 人氣 195

題目連結(jié):


題目大意:
給定一正整數(shù)N(N ≦ 100),代表有N個(gè)州。接下來(lái)有兩個(gè)僅包含大小寫字母的字串,代表兩個(gè)候選人的名字。

再接著的N行,開(kāi)頭各有一數(shù)字S(S ≦ 100),代表此州的選舉人票。其後緊接兩個(gè)數(shù)字 V1、V2(V1、V2 ≦ 10 ^ 8 且 V1 ≠ V2),分別對(duì)應(yīng)到兩個(gè)候選人在此州的票數(shù)。

如果某個(gè)候選人在某州的票數(shù)比另一個(gè)人多,則他將會(huì)獲得那個(gè)州的全部選舉人票。

簡(jiǎn)言之,本題就是要模擬美國(guó)的選舉人制度,但是情況較為簡(jiǎn)潔(沒(méi)有失信選舉人、州民票數(shù)一樣等情況)。

求最後哪一候選人當(dāng)選,輸出其名字;如果平手,則輸出「Tie」。



解題思維:
這題用 Java 和 Python 很吃虧(目前沒(méi)人用這兩個(gè)語(yǔ)言 AC 過(guò)),因?yàn)檩斎胭Y料太多了。

而 C++ 內(nèi)建的 cin 、 cout 平時(shí)會(huì)比 C 的 scanf 、 printf 慢,所以要最佳化一下(方式、原因參見(jiàn)這篇大大的文章)。

在此再次強(qiáng)調(diào),當(dāng)關(guān)閉 cin、cout 與系統(tǒng)的同步時(shí),請(qǐng)不要再與其他輸入輸出的函數(shù)混用。很容易出事(會(huì)有 BUG)。

解決了輸入的問(wèn)題,這題大致上就沒(méi)什麼特別問(wèn)題了。




此次分享到此為止,如有任何更加簡(jiǎn)潔的想法或是有說(shuō)明不清楚之地方,也煩請(qǐng)各位大大撥冗討論。

創(chuàng)作回應(yīng)

更多創(chuàng)作