田忌賽馬(貪心)

2022-05-12 23:59:45 字數 1117 閱讀 5906

描述

中國古代的歷史故事「田忌賽馬」是為大家所熟知的。話說齊王和田忌又要賽馬了,他們各派出n匹馬,每場比賽,輸的一方將要給贏的一方200兩**,如果是平局的話,雙方都不必拿出錢。現在每匹馬的速度值是固定而且已知的,而齊王出馬也不管田忌的出馬順序。請問田忌該如何安排自己的馬去對抗齊王的馬,才能贏取最多的錢?

輸入

第一行為乙個正整數n (n <= 1000) ,表示雙方馬的數量。

第二行有n個整數表示田忌的馬的速度。

第三行的n個整數為齊王的馬的速度。

輸出

僅有一行,為田忌賽馬可能贏得的最多的錢,結果有可能為負。

樣例輸入

392 83 71

95 87 74

樣例輸出

200這道題讓我明白……要學好貪心,首先要有顆「貪心」

首先,從雙方最弱的馬開始比較:

如果田忌的馬比齊王的馬快,那使這兩條馬比賽(不贏白不贏)

如果田忌的馬比齊王的馬慢,就使田忌的這條最弱的和齊王最強的馬比賽(反正都要輸,不如輸的有價值)

然後,如果遇到雙方的馬一樣快的情況:

肯定懟掉啊,反正不輸錢!恭喜你,掉坑了

這個時候後面的馬先放一放,我們看前面:

如果田忌最強的馬比齊王最強的馬快,就使這兩隻比賽(雙方強者的硬懟)

如果田忌最強的馬比齊王最強的馬慢,就使田忌目前最弱的把齊王最強的浪掉

這樣雖然不能保證不輸錢,但結果一定是最優的

**如下:

#include#include

using

namespace

std;

int a[2010],b[2010

];int

ans;

intmain()

else

if(a[la]else

if(a[la]==b[lb])

else}}

printf("%d

",ans*200

);

return0;

}

田忌賽馬(貪心

給出田忌和齊王各馬的速度,求最優得分 我的貪心策略 當然是錯的 1,用我方在 可以 戰勝 或 比平 對方最慢的馬 的馬 中 最慢的馬 去比 對方最慢的馬 2,直到我方最快的馬也下場了,剩下的馬預設全部戰敗 這種策略明顯是不對的 我方的快馬的貪心策略應該是擊敗能力範圍內對方最快的馬 浪費最小 我方的慢...

貪心DP 田忌賽馬

田忌賽馬 描述 description 中國古代的歷史故事 田忌賽馬 是為大家所熟知的。話說齊王和田忌又要賽馬了,他們各派出n匹馬,每場比賽,輸的一方將要給贏的一方200兩 如果是平局的話,雙方都不必拿出錢。現在每匹馬的速度值是固定而且已知的,而齊王出馬也不管田忌的出馬順序。請問田忌該如何安排自己的...

田忌賽馬貪心演算法 田忌賽馬問題 貪心演算法

關於輸入 輸入包含多組測試資料.每組測試資料的第一行是乙個整數n 1 n 1000 表示田忌和齊王都擁有n匹馬。接下來一行是n個整數,表示田忌的馬的速度,下一行也是n個整數,表示齊王的馬的速度。輸入的最後以乙個0表示結束。關於輸出 對每組資料,如果田忌能贏則輸出 win 如果田忌能輸則輸出 lose...