切換
舊版
前往
大廳
主題

ZeroJudge - b947: 3rd CPSC Problem 2--總統大選 解題心得

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

題目連結:


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

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

如果某個候選人在某州的票數比另一個人多,則他將會獲得那個州的全部選舉人票。

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

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



解題思維:
這題用 Java 和 Python 很吃虧(目前沒人用這兩個語言 AC 過),因為輸入資料太多了。

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

在此再次強調,當關閉 cin、cout 與系統的同步時,請不要再與其他輸入輸出的函數混用。很容易出事(會有 BUG)。

解決了輸入的問題,這題大致上就沒什麼特別問題了。




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

創作回應

更多創作