#include <bits/stdc++.h>
#define f(i,a,b) for (int i=a;i<=b;i++)
#define LL undefined long long
#define Shion cout << "Shion is too poor to print that." << endl
const int Miku=0x39c5bb;
using namespace std;
int n,in[35][35];
bool flags[35][35],fin;
const int dx[5]={Miku,0,0,1,-1};
const int dy[5]={Miku,1,-1,0,0};
bool walk(int x,int y,int drct){
int xx=x+dx[drct];
int yy=y+dy[drct];
if(xx>0&&yy>0&&xx<=n&&yy<=n)
if(in[xx][yy]==0)
walk(xx,yy,drct);
else
return 1;
else
return 0;
}
void dfs(int x,int y,bool tp){
if(!tp){
if(!in[x][y]){
int flag=0;
f(i,1,4){
if(walk(x,y,i))
flag++;
}
if(flag==4){
flags[x][y]=1;
fin=1;
f(i,1,4){
int xx=x+dx[i];
int yy=y+dy[i];
dfs(xx,yy,1);
}
}
}
}
else{
if(!in[x][y]&&x>0&&y>0&&x<=n&&y<=n){
flags[x][y]=1;
f(i,1,4){
int xx=x+dx[i];
int yy=y+dy[i];
dfs(xx,yy,1);
}
}
}
}
int main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin>>n;
f(i,1,n)
f(j,1,n)
cin>>in[i][j];
f(i,1,n)
f(j,1,n){
if(!fin)
dfs(i,j,0);
else
break;
}
f(i,1,n){
f(j,1,n){
if(flags[i][j])
cout<<"2 ";
else
cout<<in[i][j]<<" ";
}
cout<<'\n';
}
return 0;
Shion;
}
当事人在写的时候(感觉自己)思路清晰
而实际上:
1.return value 3221225725
2.缩进大小调为2格导致只有聪明的人才看得懂(bushi
3.超烂的思路以及顾及沉没成本的浪子不回头想法
4.一点注释没有(平生讨厌两种人.jpg)
所以真的希望有神犇指点一下