社区讨论
这个做法还有机会AC吗?TLE一个点,对闭关
P1162填涂颜色参与者 4已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @mk55bhnb
- 此快照首次捕获于
- 2026/01/08 15:48 上个月
- 此快照最后确认于
- 2026/01/10 21:40 上个月
CPP
#include <bits/stdc++.h>
using namespace std;
int n;
int dg[4][2] = {{-1 ,0} ,{1 ,0} ,{0 ,-1} ,{0 ,1}};
struct Node{
int ma;
bool flag = true;
}a[35][35];
void dfs (int x ,int y) {
for (int i = 0;i < 4;i++) {
int dx = x + dg[i][0];
int dy = y + dg[i][1];
if (a[dx][dy].ma == 0 && (dx >= 1 && dx <= n && dy >= 1 && dy <= n)) {
a[dx][dy].ma = 1;
a[dx][dy].flag = false;
dfs(dx ,dy);
a[dx][dy].ma = 0;
}
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
//cin.tie(0)->sync_with_stdio(0);
cin >> n;
for (int i = 1;i <= n;i++) {
for (int j = 1;j <= n;j++) {
cin >> a[i][j].ma;
a[i][j].flag = true;
}
}
for (int i = 1;i <= n;i++) {
for (int j = 1;j <= n;j++) {
if (a[i][j].ma == 1) {
a[i][j].flag = false;
} else if ((i == 1 || i == n || j == 1 || j == n) && a[i][j].ma == 0) {
a[i][j].flag = false;
dfs(i ,j);
}
}
}
for (int i = 1;i <= n;i++) {
for (int j = 1;j <= n;j++) {
if (a[i][j].ma == 0 && a[i][j].flag == true) {
a[i][j].ma = 2;
}
}
}
for (int i = 1;i <= n;i++) {
for (int j = 1;j <= n;j++) {
cout << a[i][j].ma << " ";
}
cout << endl;
}
return 0;
}
回复
共 5 条回复,欢迎继续交流。
正在加载回复...