P11072 Alice and Bob 题解

简单博弈题。

先说结论,如果存在 ai=0 使得 1ia1 的话,那么先手必胜,否则后手必胜。

若满足上述条件显然先手必胜,将 0 搞到第一个就行。否则 Alice 每操作一次,如果操作后满足了上述条件,那么 Bob 赢,否则 Bob 只要不动就行。但是下一轮 Alice 必须动,要不然两次操作的 a1 就相同了。这样一直进行下去,Alice 是必败的。

#include<bits/stdc++.h>
using namespace std;
inline void rd(){}
template<typename T,typename ...U>
inline void rd(T &x,U &...args){
	char ch=getchar();
	T f=1;x=0;
    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9')x=(x<<1)+(x<<3)+(ch^48),ch=getchar();
	x*=f;rd(args...);
}
int T,n,a[25];
inline void Solve(){
	rd(n);
	int mn=n+1;
	for(int i=1;i<=n;i++){
		rd(a[i]);
		if(a[i]==0)mn=min(mn,i);
	}
	if(mn<=a[1])printf("Alice\n");
	else printf("Bob\n");
}
signed main(){
	rd(T);
	while(T--)Solve();
	return 0;
}

本文作者:KIreteria

本文链接:https://www.cnblogs.com/11-twentythree/p/18417488

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   KIreteria  阅读(30)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起