典型的貪心演算法 田忌賽馬 )

2021-06-23 00:39:14 字數 1003 閱讀 9533

1. 田忌賽馬

典型的貪心演算法~~自己木有考慮到貪心的第二步導致wa了好多次

演算法分析 

problem description:

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

solution:這題有多種解體思路,dp,二分圖最大匹配演算法等,這裡給出的是比較容易理解的貪心演算法,具體思路如下:

先將田忌跟齊王的馬的速度陣列進行一次氣泡排序

1、如果田忌最快的馬比齊王最快的馬快,則比之

2、如果田忌最快的馬比齊王最快的馬慢,則用田最慢的馬跟齊最快的馬比  //這是貪心的第一步

3、如果田忌最快的馬的速度與齊威王最快的馬速度相等

3.1、如果田忌最慢的比齊威王最慢的快,則比之                         //這是貪心的第二步

3.2、如果田忌最慢的比齊威王最慢的慢,田忌慢vs齊王快

3.3、田忌最慢的與齊威王最慢的相等,田忌慢vs齊王快

注意這兩種 資料

31 2 3

92 83 71 tian 第一步 tian1對king1 轉到2 貪心的第一次,

95 92 74 king 第二步tian1對king2 轉到3.1 (貪心的第二次 保留tian的快馬 )

第三步 只剩下一種選擇了~~3 92 83 70 92 91 60

***********

#include#include#includeusing namespace std;

int a[3000],b[3000];

int cmp(int a,int b)

int main()

//如果king的比tian的快馬快 用tian的慢馬對king的快馬

if(b[j]==a[i])

else

continue;

} if(b[j]

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

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

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

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

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

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