一道貪心題 HDU 1052

2021-06-22 17:54:46 字數 578 閱讀 9670

本題故事是由田忌賽馬引起的,但是什麼田忌賽馬的我是不管咯啊。廢話不多說,先把題目大概意思講一下:路人甲和路人乙各有n匹馬,現在給出了這些馬的速度,如何匹配這些馬兒使得路人甲獲得最大利益?(ps:贏一場得200積分,輸一場減去200積分,平局不增不減)。

分析:這題目是我在題目分類中看到的一道貪心題。我們可以把它做如下分類;

1、路人甲的最快馬速度 > 路人乙的最快馬速度, 則該兩匹馬匹配;

2、路人甲的最快馬速度 < 路人乙的最快馬速度,則用路人甲的最慢馬與路人乙的最快馬匹配;

3、路人甲的最快馬速度 = 路人乙的最快馬速度:(a)路人甲的最慢馬速度 > 路人乙最慢馬速度,該兩匹最慢馬匹配;

(b)路人甲的最慢馬速度 <= 路人乙的最慢馬速度,路人甲的最慢馬與路人乙的最快馬匹配。

這是解決該題目的分類情況。詳細分析請參考: 

#include#includeusing namespace std;

bool cmp(int x,int y)

int main()

else if(a[head1]b[tail2])

else

{if(a[tail1]

hdu1052 田忌賽馬 貪心

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

HDU 1052 田忌賽馬 貪心

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

田忌賽馬 貪心演算法 HDU1052

田忌賽馬的故事大家都應該聽過吧。田忌和齊王賽馬,有優良差三種馬,每一種馬齊王都比田忌要好,所以齊王總是贏,田忌輸一次就要給齊王200銀幣,田忌輸的很慘於是去找孫臏幫忙。孫臏就讓他用最差的馬去和齊王最好的馬比,然後用優秀的馬去贏齊王差的馬。題目不過是把三頭馬變成了1000頭馬,齊王還是按馬的優劣來安排...