依次记录1的数量x和0的数量y,每一个位置判断1或0,因为是回文,所以只要第一次遇到与开头相同的数就成立,x与y
均大于2则一定有一条路使其为回文。因为结尾不为起始点,n与m为1的情况排除
#include<bits/stdc++.h>
usingnamespacestd;
intmain()
{
intT;
cin>>T;
while(T--)
{
longlongintn,m,x=0,y=0;
cin>>n>>m;
longlonginta[n][m];
for(longlonginti=0;i<n;i++)
{
for(longlongintj=0;j<m;j++)
{
scanf("%1lld",&a[i][j]);
if(a[i][j]==1)
{x++;}
else
{y++;}
}
scanf("\n");
}
for(longlonginti=0;i<n;i++)
{
for(longlongintj=0;j<m;j++)
{
if(a[i][j]==1&&x>=2)
{cout<<"Y";}
elseif(a[i][j]==0&&y>=2)
{cout<<"Y";}
else
{cout<<"N";}
}
cout<<'\n';
}
}
}

京公网安备 11010502036488号