田忌賽馬,大致題意是田忌和國王賽馬,贏一局得200元,輸一局輸掉200元,平局則財產不動。
先輸入乙個整數n,接下來一行是田忌的n匹馬,下一行是國王的n匹馬。當n為0時結束。
此題為貪心演算法解答,有兩種思路。
思路二:
1、開始也是先排序,可以使用sort快排;
2、然後將田忌最大的馬與國王進行比較;
3、如果田忌最大的馬大於國王,那麼就勝場++;
4、如果田忌最大的馬小於國王,那麼就一定會輸,所以用田忌最小的馬輸給國王最大的馬;
5、如果田忌最大的馬等於國王,那麼就比較最小的馬;
5。1、如果田忌最小的馬大於國王,那麼勝場++;
5。2、如果田忌最小的馬小於國王,那麼就輸給國王;
5。3、如果田忌最小的馬等於國王,就用田忌最小的馬對國王最大的馬,如果國王最大的馬大,那麼財產要減200;
constint max = 1050
;
bool cmp(int a,int b)
intpk2()
for(i=1; i<=n; i++)
sort(tian+1,tian+1+n,cmp);
sort(king+1,king+1+n,cmp);
int ans = 0
;
intii,jj;
for(i=1, j=1, ii=n, jj=n; i<=ii; )
else
if(tian[i] < king[j])
else
else}}
cout
<< ans <}
return0;
}int
main()
參考:
POJ 2287 田忌賽馬(貪心)
2.accepted 雙方各有n匹戰鬥力各異的馬,分別派出來pk,假設對方先出牌,我方後出,求我方最多能勝幾場 description poj2287田忌賽馬 貪心 author michael ming date 2019 7 2 23 55 modified by include include...
田忌賽馬(POJ 2287)
問題描述 你一定聽過田忌賽馬的故事吧?如果3匹馬變成1000匹,齊王仍然讓他的馬按從優到劣的順序出賽,田忌可以按任意順序選擇他的賽馬出賽。贏一局,田忌可以得到200兩銀子,輸一局,田忌就要輸掉200兩銀子,平局的話不輸不贏。請問田忌最多能贏多少銀子?關於輸入 輸入包含多組測試資料.每組測試資料的第一...
Poj 2287 田忌賽馬解題詳解(貪心思想)
題意是 田忌賽馬的故事,兩個人賽馬,第一行輸入的數是兩個人馬的匹数,都是相同的,第二行輸入的是田忌的馬的強弱值,第三行輸入的是國王馬的強弱值,然後如果n 0則程式結束。解題思路 貪心思想 如果田忌的最強馬大於國王的最強馬直接比 如果田忌的最強馬小如國王的最強馬拿最弱的那匹馬跟國王的最強馬比 如果田忌...