nyoj364田忌赛马

来源:互联网 发布:女保镖走红网络 编辑:程序博客网 时间:2024/05/21 06:41

题意:和古代的田忌赛马一样,只是可以有多匹马;

 

 

大体思路用贪心,主要: 尽量多赢几场

这就有两点:

1.赢的时候尽量赢差不多的对手

2.实在赢不了,就去消耗对方高手

#include <iostream>#include <algorithm>using namespace std;int t[10000];int k[10000];int main(void){ int n; while(cin>>n) {  for(int i = 0; i < n; ++i)    {                          cin>>t[i];  }  for(int i = 0; i < n; ++i)  {   cin>>k[i];  }  sort(t, t + n);  sort(k, k + n);  int tl = 0, tr = n - 1;  int kr = n - 1, kl = 0;  int w = 0;  int people =  0;  while(tl <= tr)  {   if(t[tr] > k[kr])  //先用最好的和对方最好的比   {                    tr--;       kr--;    w++;   }   else if(t[tl] > k[kl])  //最好的比不过就比最差的   {    w++;    tl++;    kl++;   }   else if(t[tl] < k[kr]) //最差的比不过就可以放弃最小的,去消耗对方的最大的   {    w--;    tl++;    kr--;   }   else  //平局   {    tl++;    kr--;   }  }  cout<<w * 200<<endl; } return 0;}