/*
* POJ_1323.cpp
*
* Created on: 2013年11月18日
* Author: Administrator
*/
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn = 1100;
int a[maxn];
bool flag[maxn];
int main(){
int m,n;
int counter = 1;
while(scanf("%d%d",&m,&n)!=EOF,n||m){
memset(flag,0,sizeof(flag));
int i;
for(i = 0 ; i < n ; ++i){
scanf("%d",&a[i]);
flag[a[i]] = true;
}
sort(a,a+n);
int j;
int ans = 0;
for(i = 0 ; i < n ; ++i){
for(j = a[i] + 1 ; j <= n*m ; ++j){//别人足够聪明&&并且想方设法的让你输..(足够聪明体现在,他打出比你大一点的牌)
if(!flag[j]){
flag[j] = true;
ans++;//别人赢得次数+1
break;
}
}
}
printf("Case %d: %d\n",counter++,n-ans);
}
return 0;
}
(Relax 1.6)POJ 1323 Game Prediction(利用有序化数据进行贪心选择: 有m个人,每个人有n张牌,别人想方设法的让你输,求你能赢多少次)
最新推荐文章于 2020-10-19 18:26:47 发布
本文提供了一道来自POJ平台的编号为1323的编程题目解决方案。该方案采用C++实现,通过输入两个整数m和n来定义问题规模,并利用数组记录数据和布尔标志来解决此问题。主要思路在于通过排序和查找未被标记的位置,以确定对手可能赢的次数。

1085

被折叠的 条评论
为什么被折叠?



