描述
中國古代的歷史故事「田忌賽馬」是為大家所熟知的。話說齊王和田忌又要賽馬了,他們各派出n匹馬,每場比賽,輸的一方將要給贏的一方200兩**,如果是平局的話,雙方都不必拿出錢。現在每匹馬的速度值是固定而且已知的,而齊王出馬也不管田忌的出馬順序。請問田忌該如何安排自己的馬去對抗齊王的馬,才能贏取最多的錢?
輸入
第一行為乙個正整數n (n <= 1000) ,表示雙方馬的數量。
第二行有n個整數表示田忌的馬的速度。
第三行的n個整數為齊王的馬的速度。
輸出
僅有一行,為田忌賽馬可能贏得的最多的錢,結果有可能為負。
樣例輸入
392 83 71
95 87 74
樣例輸出
200這道題讓我明白……要學好貪心,首先要有顆「貪心」
首先,從雙方最弱的馬開始比較:
如果田忌的馬比齊王的馬快,那使這兩條馬比賽(不贏白不贏)
如果田忌的馬比齊王的馬慢,就使田忌的這條最弱的和齊王最強的馬比賽(反正都要輸,不如輸的有價值)
然後,如果遇到雙方的馬一樣快的情況:
肯定懟掉啊,反正不輸錢!恭喜你,掉坑了
這個時候後面的馬先放一放,我們看前面:
如果田忌最強的馬比齊王最強的馬快,就使這兩隻比賽(雙方強者的硬懟)
如果田忌最強的馬比齊王最強的馬慢,就使田忌目前最弱的把齊王最強的浪掉
這樣雖然不能保證不輸錢,但結果一定是最優的
**如下:
#include#includeusing
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...