专栏文章

题解:CF2030C A TRUE Battle

CF2030C题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miqbqrk5
此快照首次捕获于
2025/12/04 02:12
3 个月前
此快照最后确认于
2025/12/04 02:12
3 个月前
查看原文
博弈论。
同时,因为 and 比 or 的优先级高。
那么,Alice 可以将 or 放在两个连续的 11 之间,这样的话,Alice 的表达式的值总有一边为 11。然后无论 Bob 接下来把 and 放在哪里,Alice 在神之一手,直接抬走。然后,如果所以如果 Alice 能够在两个 or 中间放置一个结果为真的表达式,那么 Alice 就能将 Bob 直接抬走,那我们知道 or 想要值为真只要一边为 11 就够了,所以直接在一个 11 的两旁放 or 就能神之一手,直接抬走了。
最后,如果头尾均没有 11 切没有相邻的 11,那么这个时候,如果 Alice 把 or 放在一个 11 的一侧,那么 Bob 可以在另一侧放 and,因为 and 的优先级比 or 高,所以最后表达式会为假。所以当且仅当上述两种条件下,Alice 才能获胜。
代码:
CPP
//By Wide_Master
#include<bits/stdc++.h>
using namespace std;
int T,n,f;
string s;
signed main()
{
	cin>>T;
	while(T--){
		cin>>n;
        cin>>s;
        s=" "+s;
		f=0;
		if(s[1]=='1'||s[n]=='1'){
			puts("YES");
			continue;
		}
		for(int i=1;i<n;i++){
			if(s[i]=='1'&&s[i+1]=='1'){
				f=1;
				break;
			}
		}
		if(f) puts("YES");
		else puts("NO");
	}
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...