
正文
UVALive 2521 Game Prediction 题解
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
这个我上来把题目理解错了,我以为所有人的牌都是一样的,感觉这个题太麻烦了吧,而且题目样例过不去啊……后来发现理解错了,给出的数据是他一个人的数据,就是让我们求他一定能赢的轮数,所有的牌是固定的(1 - n×m),然后就去找当前最大值就可以了,不断的更新被打出的牌,就可以求出答案了。
代码如下:
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std; int data[]; bool cmp(int a,int b)
{
return a>b;
} int main()
{
int n,m,cas=;
while(~scanf("%d%d",&m,&n),m)
{
for (int i=;i<=n;i++)
{
scanf("%d",&data[i]);
}
sort(data+,data++n,cmp);
int ll=,cnt=;
for (int maxn=m*n,i=;i<=n,maxn>=;maxn--)
{
if (maxn==data[i])
{
i++;
if (ll==)
{
cnt++;
}
else
{
ll--;
}
}
else
ll++;
}
printf("Case %d: %d\n",++cas,cnt);
}
return ;
}






