不知道为什么wa,应该是没有理解题意...
我是这样理解的.如果一个0点周围存在非0点并且只有一个就填入那个非0点,否则保持0.
到底还是wa
#include<iostream>
#include<cstring>
using namespace std;
int map[202][202],tmap[202][202];
int isval(int x,int y)
{
int count=0,temp;
if(map[x+1][y])
{
count++;
temp=map[x+1][y];
}
if(map[x-1][y])
{
count++;
temp=map[x-1][y];
}
if(map[x][y+1])
{
count++;
temp=map[x][y+1];
}
if(map[x][y-1])
{
count++;
temp=map[x][y-1];
}
if(count==1)
return temp;
else
return 0;
}
int main()
{
int icase;
cin>>icase;
while(icase--)
{
memset(map,0,sizeof(map));
memset(tmap,0,sizeof(tmap));
int num;
cin>>num;
for(int i=1;i<=num;i++)
for(int j=1;j<=num;j++)
{
cin>>map[i][j];
tmap[i][j]=map[i][j];
}
for(int i=1;i<=num;i++)
for(int j=1;j<=num;j++)
{
if(!map[i][j])
tmap[i][j]=isval(i,j);
}
for(int i=1;i<=num;i++)
{
for(int j=1;j<=num;j++)
cout<<tmap[i][j]<<' ';
cout<<endl;
}
cout<<endl;
}
return 0;
}