田忌賽馬 貪心演算法 HDU1052

2021-07-10 12:58:56 字數 810 閱讀 2509

田忌賽馬的故事大家都應該聽過吧。田忌和齊王賽馬,有優良差三種馬,每一種馬齊王都比田忌要好,所以齊王總是贏,田忌輸一次就要給齊王200銀幣,田忌輸的很慘於是去找孫臏幫忙。孫臏就讓他用最差的馬去和齊王最好的馬比,然後用優秀的馬去贏齊王差的馬。

題目不過是把三頭馬變成了1000頭馬,齊王還是按馬的優劣來安排,但是田忌可以自己安排馬的出場順序,求田忌最慢安排才能贏得最多。

思路都寫在了**的注釋裡,也是參考了一些部落格才做出來的=.=

// 田忌賽馬思路

// 貪心演算法思路

// ①:當田忌最慢的馬比齊王最慢的馬快則先贏一場

// ②:當田忌最慢的馬比齊王最慢的馬慢則用最慢的馬去贏齊王最快的馬

// ③:當田忌最快的馬比齊王最快的馬快則先贏一場

// ④:當田忌最快的馬比齊王最快的馬慢則用最慢的馬贏齊王最快的馬

// ⑤:當田忌最快的馬和齊王最快的馬一樣快是用最慢的馬贏齊王最快的馬

#include #include using namespace std;

int tianji[1005], qi[1005];

int main()

else if(tianji[i] < qi[s]) // 當田忌最慢的馬比齊王最慢的馬慢時

else // 如果田忌和齊王最慢的打平的話

else // 如果田忌最快的馬不能打贏齊王最快的馬的話}}

cout << 200 * ans << endl;

}return 0;

}

hdu1052(貪心演算法解決田忌賽馬)

題目鏈結 題目大意 給你田忌和國王的馬匹每匹所代表的值,值越高代表這個馬越厲害。然後輸出這種情況下的,田忌最多能贏多少銀兩。贏一場可以得200銀兩 注 可以為負值。比如輸了三局,就是 600 題目思路 貪心演算法,在這就是分類討論思想 我們記田忌最快的馬為qt,最慢的馬為st 記國王最快的馬為qk,...

hdu1052 田忌賽馬 貪心

錯誤 include 田忌賽馬,錯誤版 include include 思路 用田忌最快的馬與齊王最快的馬比較,1.若能贏就贏 2.若贏不了,就用最差的馬拖齊王最好的馬入水 3.若打平 要判斷是否在最好一匹馬,若是,則打平,若不是,則用最差的一匹馬拖它下水,雖然輸了這次,但下次有機會贏回。看似無差別...

HDU 1052 田忌賽馬 貪心

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