Rochambeau
题意:
N个人玩剪刀石头布,每个人都只会出固定的一种,所以一共会有3种人,但是这群人里有一个人搞特殊,他能随便出,请找出他
思路:
枚举每一个人是特殊人的情况,如果排除这个假定的特殊人之后没人再乱出搞事情,那他就有可能是特殊人,把他保存下来。
- 如果最后一个特殊人也没找到,说明有不止一个人在乱搞,输出"Impossible";
- 如果最后找到好几个特殊人,说明没人在乱出搞事情,不确定谁是特殊人,输出"Can not determine";
- 如果最后只找到一个特殊人,就说明真正的特殊人就是找到的这个人,而能够确定的最小轮数则是在假定其他人是特殊人时判断出有人在搞事情时的最大轮数(因为此时才能确定其余的人都不是特殊人)
注意:枚举每一个人时都要重新初始化
代码附:
#include<cstdio>
#include<stack>
#include<cstring>
using namespace std;
int n,m,when=0;
int fa[510],ra[510],vis[510];
struct mes
{
int a,b,c;
} pep[2020];
stack<int>may;
void init()
{
memset(ra,0,sizeof(ra));
memset(vis,0,sizeof(vis));
for(int i=0; i<n