题解:CF2147C Rabbits
赛时未通过。
但是个人感觉就是纯思维题,做这种题目思维要打开。
我们思考兔子怎么才不能跳到花坛,对于这样偶数个
那么也就是说我们可以快速判断两个兔子是否合法,具体的我们可以找这种
#include<bits/stdc++.h>
//#define int long long
#define rep(i,l,r) for(int i=l;i<=r;++i)
#define per(i,r,l) for(int i=r;i>=l;--i)
using namespace std;
void solve(){
string s;
int n; cin>>n; cin>>s;
int len=s.size();
for(int i=0,j;i<len;i=j+1){
j=i;
for(;j+1<len&&s[j]!=s[j+1];++j);
if(s[j]=='1'&&s[i]=='1'&&(((j-i)/2)&1)){
cout<<"NO\n"; return;
}
// cout<<j<<' ';
}
cout<<"YES\n";
}
signed main() {
int Q; cin>>Q;
for(;Q;--Q){
solve();
}
return 0;
}