UVA1344 - Tian Ji -- The Horse Racing

来源:互联网 发布:vb.net 打开文件 编辑:程序博客网 时间:2024/05/01 07:11

题目链接


题意:田忌赛马,求出能赢的最大的钱数 


思路:

1、每次失败的马匹,要体现其失败价值最大化,即必败无疑的马匹要跟其King最好的马匹比赛,才能实现其失败的价值!(即给后继马匹争取更大的赢取几率) 

2、每次胜利的马匹,要体现其胜利价值最大化,即要赢了king里相对最好的马匹!(即也给后继马匹争取更大的赢取几率) 
3、拒绝平局 


#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N = 1005;int a[N], b[N];int main() {    int n;    while (scanf("%d", &n) && n) {        for (int i = 0; i < n; i++)             scanf("%d", &a[i]);         for (int i = 0; i < n; i++)             scanf("%d", &b[i]);         sort(a, a + n);         sort(b, b + n);        int i, j, k, s;        j = s = 0;        k = n - 1;        for (i = 0; i < n;) {            if (a[i] > b[j]) {                s++;                i++;                 j++;             }            else if (a[n - 1] > b[k]){                s++;                   n--;                 k--;            }             else {                if (a[i] < b[k])                     s--;                 k--;                i++;            }          }        printf("%d\n", s * 200);    }    return 0;}


0 0
原创粉丝点击