专栏文章
题解: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 放在两个连续的 之间,这样的话,Alice 的表达式的值总有一边为 。然后无论 Bob 接下来把 and 放在哪里,Alice 在神之一手,直接抬走。然后,如果所以如果 Alice 能够在两个 or 中间放置一个结果为真的表达式,那么 Alice 就能将 Bob 直接抬走,那我们知道 or 想要值为真只要一边为 就够了,所以直接在一个 的两旁放 or 就能神之一手,直接抬走了。
最后,如果头尾均没有 切没有相邻的 ,那么这个时候,如果 Alice 把 or 放在一个 的一侧,那么 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 条评论,欢迎与作者交流。
正在加载评论...