这道题数据范围不是30吗,为什么35的数组会RE?
  • 板块P1162 填涂颜色
  • 楼主AC_loveRealNewbie
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/8/16 14:27
  • 上次更新2023/11/3 03:23:33
查看原帖
这道题数据范围不是30吗,为什么35的数组会RE?
186472
AC_loveRealNewbie楼主2023/8/16 14:27
#include <bits/stdc++.h>
using namespace std;
int n;
int a[35][35];
// 换成 40 就过了
// 不知道为什么

int dx[5] = {0, 0,  0, 1, -1};
int dy[5] = {0, 1, -1, 0,  0};

int dfs(int x, int y)
{
	a[x][y] = 114514;
	for(int i = 1; i <= 4; i = i + 1)
	{
		int px = x + dx[i];
		int py = y + dy[i];
		if(a[px][py] == 2)
			dfs(px, py);
	}
}

void print(int s)
{
	if(s == 114514)
		cout << 0 << " ";
	else
		cout << s << " ";
}

int main()
{
//	freopen("a.txt", "r", stdin);
	cin >> n;
	for(int i = 1; i <= n; i = i + 1)
		for(int j = 1; j <= n; j = j + 1)
		{
			cin >> a[i][j];
			if(a[i][j] == 0)
				a[i][j] = 2;
		}
	for(int i = 1; i <= n; i = i + 1)
		for(int j = 1; j <= n; j = j + 1)
		{
			if(a[i][j] != 2)
				continue;
			if(i == 1 || i == n || j == 1 || j == n)
				dfs(i, j);
		}
	for(int i = 1; i <= n; i = i + 1)
	{
		for(int j = 1; j <= n; j = j + 1)
			print(a[i][j]);
		cout << "\n"; 
	}
	
	return 0;
}
2023/8/16 14:27
加载中...