hdu1052 田忌賽馬 貪心

2021-07-27 19:32:08 字數 667 閱讀 7537

錯誤**:

#include//田忌賽馬,錯誤版

#include#include/*思路:用田忌最快的馬與齊王最快的馬比較,1.若能贏就贏;2.若贏不了,就用最差的馬拖齊王最好的馬入水;3.若打平:要判斷是否在最好一匹馬,

若是,則打平,若不是,則用最差的一匹馬拖它下水,雖然輸了這次,但下次有機會贏回。看似無差別,但這樣做卻保留了最多的好馬。

然而這種思靠雖然完備,但方向一開始已經錯了。為什麼田忌自己賽會輸,因為他用最好的馬與最好的馬去比,硬碰硬。然而孫臏的想法是

避其鋒芒,攻其弱點,也就是說,要贏比賽,就要盡量在齊王的弱馬上贏,因為這樣成本低,收益更大。而不是在齊王的強馬上贏得比賽。

所以比賽從齊王最弱的馬開始kill。

int cmp(const void*a, const void*b)

int main()

else if(t[th]

正確**:

#include//正確方案,從弱馬開始

#include#includeint cmp(const void*a, const void*b)

int main()

else if(t[tt]k[kh])//所以這裡要判斷田強是否贏齊強,看看田弱是否死得有價值

//死得沒價值,這局就讓田強贏齊強

else if(t[th]

HDU 1052 田忌賽馬 貪心

題意是田忌賽馬的背景,雙方各有n匹馬,下面兩行分別是田忌和齊王每匹馬的速度,要求輸出田忌最大的淨勝場數 每場的賭金200。開始的時候想對雙方的馬匹速度排序,然後比較最快的馬,能勝則勝,否則用最慢的馬去消耗對方,但這樣存在問題 1 2 3 對 1 3 3的時候,會變成1 3,2 3,3 1,淨勝 1場...

hdu 1052 田忌賽馬

注 看到一篇部落格證明得挺好的。僅僅為了留在存根 演算法可以用dp,或者給每匹馬連線賦權變為二分圖最佳匹配,還有就是貪心了。1.當田忌最慢的馬比齊王最慢的馬快,贏一場先 2.當田忌最慢的馬比齊王最慢的馬慢,和齊王最快的馬比,輸一場 3.當田忌最快的馬比齊王最快的馬快時,贏一場先。4.當田忌最快的馬比...

HDU 1052 田忌賽馬

hdu 貪心 貪心專題 田忌賽馬 不知道上網搜一下回來 每次輸入乙個n代表馬匹數,下一行輸出田忌每一匹馬的數值,然後是王的馬匹數值。田忌贏一局得200,輸一局扣200,求田忌最多能賺多少。sample input 3 92 83 71 95 87 74 220 20 20 20 220 19 22 ...