请大家分析一下这个屎山
查看原帖
请大家分析一下这个屎山
465029
Specter_LiZN楼主2024/8/31 16:18
#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)

所以真的希望有神犇指点一下

2024/8/31 16:18
加载中...