OJ1005 田忌賽馬

2021-07-23 11:31:44 字數 1023 閱讀 4700

#include #define num 9999

int main()

else

scanf("%d",&number);

}return 0;

}

description

賽馬是一古老的遊戲,早在西元前四世紀的中國,處在諸侯割據的狀態,歷史上稱為「戰國時期」。在魏國作官的孫臏,因為受到同僚龐涓的**,被齊國使臣救出後,到達齊國國都。 賽馬是當時最受齊國貴族歡迎的娛樂專案。上至國王,下到大臣,常常以賽馬取樂,並以重金賭輸贏。田忌多次與國王及其他大臣賭輸贏,屢賭屢輸。一天他賽馬又輸了,回家後悶悶不樂。孫臏安慰他說:「下次有機會帶我到馬場看看,也許我能幫你。」 孫臏仔細觀察後發現,田忌的馬和其他人的馬相差並不遠,只是策略運用不當,以致失敗。 比賽前田忌按照孫臏的主意,用上等馬鞍將下等馬裝飾起來,冒充上等馬,與齊王的上等馬比賽。第二場比賽,還是按照孫臏的安排,田忌用自己的上等馬與國王的中等馬比賽,在一片喝彩中,只見田忌的馬竟然衝到齊王的馬前面,贏了第二場。關鍵的第三場,田忌的中等馬和國王的下等馬比賽,田忌的馬又一次衝到國王的馬前面,結果二比一,田忌贏了國王。 就是這麼簡單,現在淵子也來賽一賽馬。假設每匹馬都有恆定的速度,所以速度大的馬一定比速度小的馬先到終點(沒有意外!!)。不允許出現平局。最後誰贏的場數多於一半(不包括一半),誰就是贏家(可能沒有贏家)。淵子有n(1≤n≤1000)匹馬參加比賽。對手的馬的數量與淵子馬的數量一樣,並且知道所有的馬的速度。聰明的你來**一下這場世紀之戰的結果,看看淵子能否贏得比賽。

輸入有多組測試資料。 每組測試資料報括3行: 第一行輸入n(1≤n≤1000)。表示馬的數量。 第二行有n個整型數字,即淵子的n匹馬的速度。 第三行有n個整型數字,即對手的n匹馬的速度。 當n為0時退出。

若通過聰明的你精心安排,如果淵子能贏得比賽,那麼輸出「yes」。 否則輸出「no」。

5

2 3 3 4 5

1 2 3 4 5

42 2 1 2

2 2 3 1

0

yes

no

杭電oj1005解題

分析 1,題中 1 a,b 1000,1 n 100,000,000 可知用蠻力肯定行不通。2,a f n 1 b f n 2 mod 7 a 7 f n 1 b 7 f n 2 7 3,因f i 和f i 1 只有49種組合,因為 f i i 1 均只有7種選擇,就是只能是0,1,2,3,4,5,...

杭電OJ1005 水過

這題其實讀題的時候表示不難,但是真正做起來的時候發現其實還挺難的。在讀題的時候就會考慮的大陣列記憶體溢位的問題以及使用迭代來解決,但是這都不知很好的解決方案。在看網上的解答,普遍都是找規律。找到規律後這題就好解了。這題我是看著別人的思路過得,實在慚愧。我的參考文章 這篇文章找到了1008的週期迴圈,...

nyoj 田忌賽馬

題目大意 第一行給出n表示有n場比賽,以下兩行分別給出n個數,分別表示田忌和齊王n匹馬的速度,贏家從輸者手中獲得200錢,求田忌最多能贏多少錢。思路 1.先把兩者的馬按速度從大到小排序 2.從最大的馬開始比較,若出現齊王的馬比田忌的馬快,先暫停。3.將此時齊王最快的馬和田忌最慢的馬比賽,田忌輸掉一局...