POJ 2287 Tian Ji -- The Horse Racing&&浙江科技学院第十三届程序设计竞赛1006 田忌赛马后传(贪心)

思路:如果田忌最慢的比齐王最慢的快,或者田忌最快的比齐王最快的快,那么就比,否则让田忌最慢的和齐王最快的比。

#include<map>
#include<queue>
#include<cmath>
#include<cstdio>
#include<stack>
#include<iostream>
#include<cstring>
#include<algorithm>
#define inf 0x3f3f3f3f
#define eps 1e-8
#define mod 1000000007
#define ls l,mid,rt<<1
#define rs mid+1,rt,rt<<1|1
#define LL __int64
using namespace std;
int t[1010];
int q[1010];
int main(){
    int n,m,i,j,k,cla;


    while(~scanf("%d",&n)&&n){
        for(i = 0;i < n;++ i){
            scanf("%d",&t[i]);
        }
        for(i = 0;i < n;++ i){
            scanf("%d",&q[i]);
        }
        sort(q,q + n);
        sort(t,t + n);
        int ft = n-1;
        int fq = n-1;
        int mt = 0;
        int mq = 0,ans = 0;
        for(i = 0;i < n;++ i){
            if(t[mt] > q[mq]){
                ans ++,mt++,mq++;
            }
            else if(t[ft] > q[fq]){
                ans ++,ft--,fq--;
            }
            else{
                if(q[fq] > t[mt])
                    ans --;
                mt++,fq--;
            }
        }
        printf("%d\n",ans*200);
    }
    return 0;
}

你可能感兴趣的:(贪心)