zoukankan      html  css  js  c++  java
  • poj 2287 Tian Ji -- The Horse Racing(贪心)

    链接:http://poj.org/problem?id=2287

    题意:田忌赛马。田忌与king各有n匹马,每匹对应一个整数,整数大的马赢。田忌赢一场赚200,输一场亏200,平手不赚不亏。求田忌最多能赚多少。

    思路:贪心。

    1、两数列排序。对田忌的每一匹马,从king的马中找出一匹小于田忌的该匹马且数值最大的。共能找出win对。 

    2、然后,在剩余的马中,king的马总是>= 田忌的马,从中找出相等的对数,same.。

    3、根据win和same即可得到答案。

    PS:题目中没说马对应的数值为正数。也即是可是负数。 

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <iostream>
     4 #include <algorithm>
     5 using namespace std;
     6 
     7 #define N 1005
     8 #define MIN -100000000
     9 long long a[N], b[N];
    10 bool cmp(int x, int y)
    11 {
    12     return x > y;
    13 }
    14 
    15 int main()
    16 {
    17     int n;
    18     while(scanf("%d",&n)!=EOF)
    19     {
    20         if(n==0break;
    21         for(int i=1; i<=n; i++)
    22             cin >> a[i];
    23         for(int i=1; i<=n; i++)
    24            cin >> b[i];
    25         sort(a+1,a+n+1);
    26         sort(b+1,b+n+1);
    27         int win = 0, num = n;
    28         for(int i=1; i<=n; i++)
    29         {
    30             for(int j=n; j>=1; j--)
    31             {
    32                 if(a[i]==MIN || b[j]==MIN) continue;
    33                 if(a[i]>b[j])
    34                 {
    35                     win++; a[i] = MIN; b[j] = MIN; num--; break;
    36                 }
    37             }
    38         }
    39         //printf("%d ",win);
    40         sort(a+1,a+n+1, cmp);
    41         sort(b+1,b+n+1);
    42         int same = 0;
    43         for(int i=0; i<num; i++)
    44         {
    45             if(a[1+i]==b[win+1+i]) same++;
    46             else break;
    47         }
    48         int lose = n - same - win;
    49         cout << 200*(win-lose) << endl;
    50     }
    51     return 0;
    52 }
    View Code 
  • 相关阅读:
    C#调用Halcon
    C#跨窗体程序调用方法的具体操作
    C#调用DLL报错:试图加载格式不正确的程序
    C#窗体程序设置禁用关闭按钮
    C#窗体程序设置禁用关闭按钮
    C#在字符串中查询指定字符串是否存在
    poj1654
    poj1873
    poj2451
    poj1113
  • 原文地址:https://www.cnblogs.com/byluoluo/p/3477355.html
Copyright © 2011-2022 走看看