時間限制: 1 sec 記憶體限制: 128 mb
提交: 97 解決: 50
[提交][狀態][討論版][命題人:外部匯入]
賽馬是一古老的遊戲,早在西元前四世紀的中國,處在諸侯割據的狀態,歷史上稱為「戰國時期」。在魏國作官的孫臏,因為受到同僚龐涓的**,被齊國使臣救出後,到達齊國國都。
賽馬是當時最受齊國貴族歡迎的娛樂專案。上至國王,下到大臣,常常以賽馬取樂,並以重金賭輸贏。田忌多次與國王及其他大臣賭輸贏,屢賭屢輸。一天他賽馬又輸了,回家後悶悶不樂。孫臏安慰他說:「下次有機會帶我到馬場看看,也許我能幫你。」
孫臏仔細觀察後發現,田忌的馬和其他人的馬相差並不遠,只是策略運用不當,以致失敗。
比賽前田忌按照孫臏的主意,用上等馬鞍將下等馬裝飾起來,冒充上等馬,與齊王的上等馬比賽。第二場比賽,還是按照孫臏的安排,田忌用自己的上等馬與國王的中等馬比賽,在一片喝彩中,只見田忌的馬竟然衝到齊王的馬前面,贏了第二場。關鍵的第三場,田忌的中等馬和國王的下等馬比賽,田忌的馬又一次衝到國王的馬前面,結果二比一,田忌贏了國王。
就是這麼簡單,現在淵子也來賽一賽馬。假設每匹馬都有恆定的速度,所以速度大的馬一定比速度小的馬先到終點(沒有意外!!)。不允許出現平局。最後誰贏的場數多於一半(不包括一半),誰就是贏家(可能沒有贏家)。淵子有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
yes乙個貪心演算法的應用,從淵子的第一匹馬開始,如果能夠打敗對手,就參與計數(只統計勝場),否則對手的馬不變,淵子換上自己的下一匹馬,下面是ac**no
#include
#include
using namespace std;
int main(void)
;int b[1000] = ;
if(n == 0)
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
sort(a, a+n);
sort(b, b+n);
ans = 0;
j = 0;
i = 0;
for( ; i < n; i++)
else}}
if(ans > (n/2))
else
}return 0;
}
nyoj 田忌賽馬
題目大意 第一行給出n表示有n場比賽,以下兩行分別給出n個數,分別表示田忌和齊王n匹馬的速度,贏家從輸者手中獲得200錢,求田忌最多能贏多少錢。思路 1.先把兩者的馬按速度從大到小排序 2.從最大的馬開始比較,若出現齊王的馬比田忌的馬快,先暫停。3.將此時齊王最快的馬和田忌最慢的馬比賽,田忌輸掉一局...
田忌賽馬(貪心)
描述 中國古代的歷史故事 田忌賽馬 是為大家所熟知的。話說齊王和田忌又要賽馬了,他們各派出n匹馬,每場比賽,輸的一方將要給贏的一方200兩 如果是平局的話,雙方都不必拿出錢。現在每匹馬的速度值是固定而且已知的,而齊王出馬也不管田忌的出馬順序。請問田忌該如何安排自己的馬去對抗齊王的馬,才能贏取最多的錢...
田忌賽馬(貪心
給出田忌和齊王各馬的速度,求最優得分 我的貪心策略 當然是錯的 1,用我方在 可以 戰勝 或 比平 對方最慢的馬 的馬 中 最慢的馬 去比 對方最慢的馬 2,直到我方最快的馬也下場了,剩下的馬預設全部戰敗 這種策略明顯是不對的 我方的快馬的貪心策略應該是擊敗能力範圍內對方最快的馬 浪費最小 我方的慢...