賽馬是一古老的遊戲,早在西元前四世紀的中國,處在諸侯割據的狀態,歷史上稱為「戰國時期」。在魏國作官的孫臏,因為受到同僚龐涓的**,被齊國使臣救出後,到達齊國國都。
賽馬是當時最受齊國貴族歡迎的娛樂專案。上至國王,下到大臣,常常以賽馬取樂,並以重金賭輸贏。田忌多次與國王及其他大臣賭輸贏,屢賭屢輸。一天他賽馬又輸了,回家後悶悶不樂。孫臏安慰他說:「下次有機會帶我到馬場看看,也許我能幫你。」
孫臏仔細觀察後發現,田忌的馬和其他人的馬相差並不遠,只是策略運用不當,以致失敗。
比賽前田忌按照孫臏的主意,用上等馬鞍將下等馬裝飾起來,冒充上等馬,與齊王的上等馬比賽。第二場比賽,還是按照孫臏的安排,田忌用自己的上等馬與國王的中等馬比賽,在一片喝彩中,只見田忌的馬竟然衝到齊王的馬前面,贏了第二場。關鍵的第三場,田忌的中等馬和國王的下等馬比賽,田忌的馬又一次衝到國王的馬前面,結果二比一,田忌贏了國王。
就是這麼簡單,現在老王也來賽一賽馬。假設每匹馬都有恆定的速度,所以速度大的馬一定比速度小的馬先到終點(沒有意外!!)。不允許出現平局。最後誰贏的場數多於一半(不包括一半),誰就是贏家(可能沒有贏家)。老王有n(1≤n≤1000)匹馬參加比賽。對手的馬的數量與淵子馬的數量一樣,並且知道所有的馬的速度。聰明的你來**一下這場世紀之戰的結果,看看老王能否贏得比賽。
輸入輸入有多組測試資料。
每組測試資料報括3行:
第一行輸入n(1≤n≤1000)。表示馬的數量。
第二行有n個整型數字,即淵子的n匹馬的速度。
第三行有n個整型數字,即對手的n匹馬的速度。
當n為0時退出。
輸出若通過聰明的你精心安排,如果淵子能贏得比賽,那麼輸出「yes」。
否則輸出「no」。
樣例輸入
52 3 3 4 5
1 2 3 4 5
42 2 1 2
2 2 3 1
0樣例輸出
yesno
#include
#include
intcompare
(const
void
* a,
const
void
* b)
intmain()
,op[
1001]=
,i,j,cnt,win,max;
while
(scanf
("%d"
,&n)
&&n)
if(cnt==win)
printf
("yes\n");
else
printf
("no\n");
}return0;
}
Google賽馬問題
據說,這是google的面試題。面試題目如下 一共有25匹馬,有乙個賽場,賽場有5個賽道,就是說最多同時可以有5匹馬一起比賽。假設每匹馬都跑的很穩定,不用任何其他工具,只通過馬與馬之間的比賽,試問,最少得比多少場才能知道跑得最快的5匹馬?不能使用撞大運的演算法 很明顯這是乙個演算法題,網上有很多貼子...
演算法 賽馬問題
有25匹馬和乙個5個賽道的馬場,每場比賽可以決出5匹馬的排名,假設每匹馬發揮穩定,且不會出現名次相同的情況。問 如果要知道25匹馬中跑得最快的馬,需要幾場比賽?如果需要知道跑得第二快的馬,需要幾場比賽?第三快的呢?首先將25匹馬分5組比賽5次,可以得到各組內的排名。將5個第一名再賽一次,就可以知道2...
筆試題 賽馬問題
25匹馬,5個跑道,每個跑道最多能有1匹馬進行比賽,最少比多少次可以比出前5名?因為有25匹馬,而跑道只有5個,最開始通過6場選出第一名的馬匹應該是毫無爭議的 小組賽 12 345a1 a2a3 a4a5 1 2345 b1b2 b3b4b5 1234 5c1c2c3 c4c5 1 2345 d1d...