传送门
题意:
给四种颜色的气球,红、绿、蓝、白
红、绿、蓝各一个可以变成一个白色的
问最终能否构成回文串
显然要想构造回文串,四个数里面奇数的个数要么为0要么为1
那就看能否把四个数变成这样的即可,讨论一下
代码:
int main()
{
std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
int t;
int n;
cin>>t;
while(t--){
ll r,g,b,w;
cin>>r>>g>>b>>w;
ll x=min(r,min(g,b));
int f=0;
if(r&1)f++;
if(g&1)f++;
if(b&1)f++;
if(w&1)f++;
if(f<=1){
cout<<"YES"<<endl;
continue;
}
if(x==0){//说明不能转变
cout<<"NO"<<endl;
continue;
}
//x>0的话,可以变奇数个白色,也可以变偶数个白色
//但如果有2个奇数的话,无论怎么变都还是有两个奇数
if(f==2)cout<<"NO"<<endl;
else cout<<"YES"<<endl;
}
return 0;
}