其实很简单。假设(1,1,1)染成黑色,然后对于所有小立方体黑白相间染色。则边长为偶数的时候,可以吃完馅饼的充要条件是两个格子同色;边长为奇数的时候,充要条件是两个格子都是黑色。待本人严格证明~~
#include<iostream>
using namespace std;
int main()
{
int size,x1,x2,x3,y1,y2,y3,data;
cin>>data;
while(data-- > 0)
{
cin>>size>>x1>>x2>>x3>>y1>>y2>>y3;
if(size%2 == 0)
{
if((x1+x2+x3+y1+y2+y3) % 2 == 1)
cout<<"Yes\n";
else
cout<<"No\n";
}
else
{
if((x1+x2+x3) % 2 == 1 && (y1+y2+y3) % 2 == 1)
cout<<"Yes\n";
else
cout<<"No\n";
}
}
return 0;
}
using namespace std;
int main()
{
int size,x1,x2,x3,y1,y2,y3,data;
cin>>data;
while(data-- > 0)
{
cin>>size>>x1>>x2>>x3>>y1>>y2>>y3;
if(size%2 == 0)
{
if((x1+x2+x3+y1+y2+y3) % 2 == 1)
cout<<"Yes\n";
else
cout<<"No\n";
}
else
{
if((x1+x2+x3) % 2 == 1 && (y1+y2+y3) % 2 == 1)
cout<<"Yes\n";
else
cout<<"No\n";
}
}
return 0;
}