田忌賽馬 貪心演算法(附加別人寫的動態規劃)

2021-08-09 15:37:45 字數 676 閱讀 5044

給出2n組資料,分別表示田忌和齊威王的n匹馬的速度,沒進行一場比賽(每組資料共n場場賽),若能分出勝負,則輸的一方要給贏的一方200y¥(銀元),求田忌以怎樣的策略才能賺取最多的老婆本。

這道題看了好幾天,也看了很多版本,今天終於真的懂了

貪心演算法的思路:

首先建兩個陣列用來存放齊王和田忌的馬速

排序馬速

1如果田忌的快馬比齊王的快,那麼不論怎樣都是贏的

2如果齊王的慢馬比田忌的慢馬慢,那麼田忌用慢馬和齊王的慢馬比,肯定贏的

3如果慢馬一樣快,那麼分下面的討論:

4,在3的基礎上,田忌的快馬快,那麼對陣齊王的快馬肯定贏一場

5在3 的基礎上,田忌的快馬慢,那麼不論怎樣都會輸乙個,所以就拿最慢的和最快的比較

6快馬相等,貪心的開始

//田忌賽馬---貪心演算法

#include#includeusing namespace std;

int a[1001],b[1001];//定義兩個陣列a為田忌,b為齊王

int main()

else if(a[maxnuma]b[minnumb])

else if(a[minnuma]他用動規寫了,他貼出的別人的貪心演算法,中間有個問題,當測試資料為

20 20

20 20時,輸出不為0

我看了一下好像是沒有這塊的比較,

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

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

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

題目描述 你一定聽過田忌賽馬的故事吧?如果3匹馬變成1000匹,齊王仍然讓他的馬按從優到劣的順序出賽,田忌可以按任意順序選擇他的賽馬出賽。贏一局,田忌可以得到200兩銀子,輸一局,田忌就要輸掉200兩銀子,平局的話不輸不贏。請問田忌最多能贏多少銀子?關於輸入 輸入包含多組測試資料.每組測試資料的第一...

田忌賽馬貪心演算法 貪心演算法解決田忌賽馬

田忌賽馬 對策問題 教學目標 1 通過簡單的事例,使學生初步體會對策論在解決.梁錦美有無課件 上課時間 有 12 月 15 日 1 田忌賽馬中的數學問題 課時.同學們,你聽過 田忌賽馬 的故事嗎?第一次賽馬 上 上 中 中 下 田忌 下齊.上課周次 十六 有無課件 上課時間 有 12 月 15 日 ...