32分求条
查看原帖
32分求条
737350
zhenghuangzhe楼主2024/8/9 12:00
#include<bits/stdc++.h>
using namespace std;
int dx[] = {0, 1, -1, 0, 0};
int dy[] = {0, 0, 0, 1, -1};
int n, a[31][31], used[31][31]; 
void dfs(int vx, int vy)
{
	if(vx < 1 || vx > n || vy < 1 || vy > n || used[vx][vy] == 1 || a[vx][vy] == 1) return ;
	used[vx][vy] = 1;
	for(int i = 1; i <= 4; i++) dfs(vx + dx[i], vy + dy[i]);
	return ;
}
int main()
{
	scanf("%d", &n);
	for(int i = 1; i <= n; i++)
	{
		for(int j = 1; j <= n; j++)
		{
			scanf("%d", &a[i][j]);
		}
	}
	dfs(1, 1);
	for(int i = 1; i <= n; i++)
	{
		for(int j = 1; j <= n; j++)
		{
			if(used[i][j] == 0 && a[i][j] == 0) printf("2 ");
			else if(a[i][j] == 1) printf("1 ");
			else printf("0 ");
		}
		printf("\n");
	}
	return 0;
}

像是遇到了特殊情况,想不出来,卡在32分。

2024/8/9 12:00
加载中...