水题吧~策略就是当前出牌后,对方会选择第一个比我方大的牌出牌,即对方出不到这样的牌即为我方胜利
代码:
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=52;
int n,m,a[maxn];
bool vis[1010];
int main()
{
int cas=1;
while(scanf("%d%d",&m,&n)&&(n+m))
{
memset(vis,0,sizeof(vis));
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,a+n);
int ans=0;
for(int i=n-1;i>=0;i--)
{
bool flag=0;
for(int j=a[i]+1;j<=n*m;j++)
if(!vis[j])
{
vis[j]=1;
flag=1;
break;
}
if(!flag)
ans++;
vis[a[i]]=1;
}
printf("Case %d: %d\n",cas++,ans);
}
return 0;
}