Codeforces 1395 A. Boboniu Likes to Color Balls(奇偶)

传送门

题意:

给四种颜色的气球,红、绿、蓝、白

红、绿、蓝各一个可以变成一个白色的
问最终能否构成回文串
显然要想构造回文串,四个数里面奇数的个数要么为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;
}

你可能感兴趣的:(Codeforces,思维题)