POJ 2287 田忌赛马(贪心)
生活随笔
收集整理的這篇文章主要介紹了
POJ 2287 田忌赛马(贪心)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 1.1 題目鏈接
- 1.2 題目大意
- 1.3 解題思路
- 2. Accepted 代碼
1. 題目
1.1 題目鏈接
http://poj.org/problem?id=2287
1.2 題目大意
雙方各有n匹戰斗力各異的馬,分別派出來PK,假設對方先出牌,我方后出,求我方最多能勝幾場
1.3 解題思路
- 對方出來戰斗力k的馬
- 我方派出戰斗力比k大的且最弱的馬,贏,保存實力更高的馬
- 若均無法戰勝對方,派出最弱的馬,讓你贏個最弱的,保存實力
2. Accepted 代碼
/*** @description: poj2287田忌賽馬(貪心)* @author: michael ming* @date: 2019/7/2 23:55* @modified by: */ #include <iostream> #include <algorithm> using namespace std; bool comp(int a, int b) {return a > b; } int main() {int i, j, iend, jend, n, money;int tianji[1001], king[1001];while(cin >> n && n != 0){for(i = 0; i < n; ++i)cin >> tianji[i];for(j = 0; j < n; ++j)cin >> king[j];sort(tianji, tianji+n, comp);//從大到小排序sort(king, king+n, comp);//從大到小排序i = j = 0;iend = jend = n-1;money = 0;while(i <= iend){if(tianji[i] > king[j])//我方能打贏所有的,那么我就打掉一個最厲害的{money += 200;i++,j++;}else if(tianji[i] < king[j])//我方最大的都比別人小,讓最弱的出戰{money -= 200;iend--,j++;}else//兩邊最厲害的一樣{if(tianji[iend] > king[jend])//最弱的馬都能打敗你的最弱馬,那就用最小實力的{money += 200;iend--,jend--;}else if(tianji[iend] < king[jend])//我最弱的馬沒有勝算,讓給你最強的馬吃掉{money -= 200;iend--,j++;}else//兩邊最厲害的,和最弱的都一樣,{if(tianji[iend] < king[j])money -= 200;//我最弱的給你最強的吃掉iend--,j++;//如果tianji[iend] == king[j]//說明剩余兩邊的馬全部相等,打平,金錢不變,下標挪一下}}}cout << money << endl;}return 0; }總結
以上是生活随笔為你收集整理的POJ 2287 田忌赛马(贪心)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qr分解求线性方程组_计算方法/数值分析
- 下一篇: python gis 实例_用Pytho