A 题 都 想 了 一 下 . . . . . . A题都想了一下...... A题都想了一下......
红 绿 蓝 − > 白 最 多 只 会 只 执 行 一 次 红绿蓝->白最多只会只执行一次 红绿蓝−>白最多只会只执行一次
为啥?
构 成 回 文 , 只 和 最 终 某 种 颜 色 是 奇 是 偶 有 关 构成回文,只和最终某种颜色是奇是偶有关 构成回文,只和最终某种颜色是奇是偶有关
偶 数 就 对 称 放 置 偶数就对称放置 偶数就对称放置
奇 数 就 对 称 放 , 多 余 的 一 个 放 中 间 奇数就对称放,多余的一个放中间 奇数就对称放,多余的一个放中间
执 行 红 绿 蓝 − > 白 两 次 不 会 改 变 红 绿 蓝 的 奇 偶 性 执行红绿蓝->白两次不会改变红绿蓝的奇偶性 执行红绿蓝−>白两次不会改变红绿蓝的奇偶性
对 当 前 局 面 没 有 改 变 对当前局面没有改变 对当前局面没有改变
所 以 最 多 执 行 一 次 就 好 了 所以最多执行一次就好了 所以最多执行一次就好了
#include
using namespace std;
#define int long long
int r,g,b,w,t;
bool isok( )
{
int ji=0;
if( r%2==1 ) ji++;
if( g%2==1 ) ji++;
if( b%2==1 ) ji++;
if( ji==0 ) return true;
if( ji==1&&w%2==0 ) return true;//1个奇数情况才可以把奇数放中间
return false;
}
signed main()
{
cin >> t;
while( t-- )
{
cin >> r >> g >> b >> w;
if( isok() ) cout << "YES\n";
else if(r&&g&&b )
{
r--,g--,b--,w+=3;
if( isok() ) cout << "YES\n";
else cout << "NO\n";
}
else cout << "NO\n";
}
}