POJ 1323 Game Prediction#贪心

(~ ̄▽ ̄)~*

//既然是求最少能胜几次
//说明对方是要尽可能让我输
//但为了避免浪费,对方会用比我的牌大的牌中的最小pip的牌来击败我
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;

int main()
{
    int Cas=0;
    int m,n,pip[1010],vis[1010];
    while(scanf("%d%d",&m,&n)&&m+n)
    {
        Cas++;
        memset(pip,0,sizeof(pip));
        memset(vis,0,sizeof(vis));
        int maxpip=n*m;
        for(int i=0;i<n;i++)
        {
            scanf("%d",&pip[i]);
            vis[pip[i]]=1;
        }
        sort(pip,pip+n);
        int res=0;
        int j=1;
        for(int i=0;i<n;i++)
        {
            bool flag=0;
            for( ;j<=maxpip;j++)
            {
                if(!vis[j]&&j>pip[i])
                {
                    flag=1;
                    j++;
                    break;
                }
            }
            if(flag)//输一次加一次
                res++;
        }
        printf("Case %d: %d
",Cas,n-res);
    }
    return 0;
}
原文地址:https://www.cnblogs.com/atmacmer/p/5216411.html