设为首页 加入收藏

TOP

poj 2287 Tian Ji -- The Horse Racing
2015-11-21 00:58:00 来源: 作者: 【 】 浏览:2
Tags:poj 2287 Tian The Horse Racing
poj 2287 Tian Ji -- The Horse Racing

题意:
田忌赛马
如果3匹马变成1000匹,齐王仍然让他的马按从优到劣的顺序出赛,田忌可以按任意顺序选择他的赛马出赛。赢一局,田忌可以得到200两银子,输一局,田忌就要输掉200两银子,平局的话不输不赢。
请问田忌最多能赢多少银子?

思路:
贪心;
如果当前最好的马可以胜齐王最好的马,那么让这两匹马比一场;
如果当前最差的马能胜齐王最差的马,那么让这两匹马比一场;
如果上面两个条件都不满足,那么让当前最差的马和齐王最好的马比一场。

/*poj 2287
  题意:
  田忌赛马 
  如果3匹马变成1000匹,齐王仍然让他的马按从优到劣的顺序出赛,田忌可以按任意顺序选择他的赛马出赛。赢一局,田忌可以得到200两银子,输一局,田忌就要输掉200两银子,平局的话不输不赢。 
  请问田忌最多能赢多少银子?
  思路:
  贪心;
  如果当前最好的马可以胜齐王最好的马,那么让这两匹马比一场;
  如果当前最差的马能胜齐王最差的马,那么让这两匹马比一场;
  如果上面两个条件都不满足,那么让当前最差的马和齐王最好的马比一场。
 */
#include
  
   
#include
   
     #include
    
      using namespace std; const int N=1005; int a[N],b[N]; void gao(int n){ int p1=0,p2=0; int q1=n-1,q2=n-1; int ans=0; while(p1<=q1){ if(a[p1]>b[p2]){ ++p1; ++p2; ++ans; } else if(a[q1]>b[q2]){ --q1; --q2; ++ans; } else{ if(a[p1]!=b[q2]) --ans; ++p1; --q2; } } printf(%d ,ans*200); } int main(){ int n; while(scanf(%d,&n) && n){ for(int i=0;i
     
      

?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇ok6410 uboot 网卡驱动 下一篇leetcode 233: Number of Digit O..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: