POJ2287 Tian Ji -- The Horse Racing

  原题传送:http://poj.org/problem?id=2287

 

贪心算法:

  1. 田忌要尽可能用最慢的马去赢齐王最快的马。

  2. 能赢就赢。

 

  一开始我不是这么想的,我是用田忌最快的马和齐王最快的马比较,如果田忌慢,那么换田忌最慢的马和谐掉齐王最快的马,那么田忌剩下的马赢的次数就能多点。但是这种想法是错的,这样过不了下面这组测试数据:

3
5 5 3
5 4 2
答案:400

View Code
 1 #include <stdio.h>
 2 #include <algorithm>
 3 #include <string.h>
 4 #define MAXN 1005
 5 
 6 int a[MAXN], b[MAXN];
 7 
 8 bool cmp(int x, int y){return x > y;}
 9 
10 int main()
11 {
12     int i, n, sum, k, al, ar, bl, br;
13     while(scanf("%d", &n), n)
14     {
15         for(i = 0; i < n; i ++)
16             scanf("%d", &a[i]);
17         for(i = 0; i < n; i ++)
18             scanf("%d", &b[i]);
19         std::sort(a, a + n, cmp);
20         std::sort(b, b + n, cmp);
21         k = sum = 0;
22         al = bl = 0, ar = br = n - 1;
23         while(al <= ar)
24         {
25             if(a[ar] > b[br])
26             {
27                 sum ++;
28                 ar --, br --;
29             }
30             else if(a[al] > b[bl])
31             {
32                 sum ++;
33                 al ++, bl ++;
34             }
35             else if(a[al] <= b[bl])
36             {
37                 if(a[ar] < b[bl])
38                     k ++;
39                 ar --, bl ++;
40             }
41         }
42         printf("%d\n", 200 * (sum - k));
43     }
44     return 0;
45 }

 

  后来想想,怎么好像是动态规划题啊。

 

转载于:https://www.cnblogs.com/huangfeihome/archive/2012/09/20/2696169.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值