>m […]">

poj1323 贪心

2017年02月26日 11点热度 0人点赞 0条评论

题意:n个人在玩牌,每个人有m张牌,于是就有n*m张牌(每张牌都有一个值,介于1到n*m之间,不重复),然后进行m轮游戏,每轮每个人都出一张牌,牌最大的那个人就赢了,然后给出n和m,以及你的m张牌,问你最多能赢几轮? 就是你在最坏的情况下能赢多少局,

#include
#include
#include
using namespace std;
int main(){
   // freopen("1.txt","r",stdin);
int Case=1,ans,n1,m,n,a[1010];
while(cin>>m>>n&&m&&n){
    for(int i=0;i>a[i];
    sort(a,a+n);
    ans=n1=0;
    n--;
    for(int i=(n+1)*m;i>0&&n>=0;i--){
        if(a[n]!=i)
            n1++;
        else
            if(n1)
            n1--,n--;
        else
            ans++,n--;
    }
    printf("Case %d: %dn",Case,ans);
    Case++;
}
}
未经允许不得转载!poj1323 贪心

update

纸上得来终觉浅, 绝知此事须躬行。