#include<cstdlib>
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include <algorithm>
#include<set>
#include<map>
#define LL long long
#define inf 0x7fffffff
#define E 1e-9
#define M 100
#define N 6
using namespace std;
int n,k,m;
int ma[N][N];
int ans[N][N];
int t;
int main()
{
#ifndef ONLINE_JUDGE
freopen("ex.in","r",stdin);
#endif
int T;
scanf("%d",&T);
n=5;
m=6;
int ncase=0;
while(T--)
{
for (int i=0; i<n; ++i )
for(int j=0; j<m; ++j)
scanf("%d",&ma[i][j]);
// for (int i=0; i<n; ++i )
// {
// for(int j=0; j<m; ++j)
// printf("%d ",ma[i][j]);
// printf("\n");
// }
for(int s=0; s<(1<<6); s++)
{
for(int r=0; r<6; r++)
if(s&(1<<r))
ans[0][r]=1;
else
ans[0][r]=0;
for(int i=0; i<n-1; i++)
for(int j=0; j<m; j++)
{
t=ma[i][j]^ans[i][j];
if(i>0)t^=ans[i-1][j];
if(j>0)t^=ans[i][j-1];
if(j<m-1)t^=ans[i][j+1];
ans[i+1][j]=t;
}
int flag=1;
for(int j=0; j<m; j++)
{
t=ma[n-1][j]^ans[n-1][j];
if(j>0)t^=ans[n-1][j-1];
if(j<m-1)t^=ans[n-1][j+1];
t^=ans[n-2][j];
if(t)
{
flag=0;
break;
}
}
if(flag)
{
break;
}
}
printf("PUZZLE #%d\n",++ncase);
for (int i=0; i<n; ++i )
{
for(int j=0; j<m; ++j)
printf("%d ",ans[i][j]);
printf("\n");
}
}
}
poj1222(暴力枚举)
最新推荐文章于 2020-12-31 13:40:43 发布