社区讨论
样例过0分全tle求调
B4263[GESP202503 四级] 荒地开垦参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mhjh6bel
- 此快照首次捕获于
- 2025/11/04 02:30 4 个月前
- 此快照最后确认于
- 2025/11/04 02:30 4 个月前
CPP
#include <bits/stdc++.h>
using namespace std;
int a[1010][1010];
int tmp_a[1010][1010];
int n, m;
void input()
{
cin >> n >> m;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
char c;
cin >> c;
if (c == '.')
{
a[i][j] = 0;
tmp_a[i][j] = 0;
}
else
{
a[i][j] = 1;
tmp_a[i][j] = 1;
}
}
}
}
void dy()
{
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
tmp_a[i][j] = a[i][j];
}
}
}
vector<pair<int, int>> find_zw;
void find_zero_one()
{
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
if (a[i][j] == 1)
find_zw.push_back({i, j});
}
int maxn = -1;
void kk()
{
int cnt = 0;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
// if (tmp_a[i][j] == 1)
// {
// tmp_a[i + 1][j] = 1;
// tmp_a[i - 1][j] = 1;
// tmp_a[i][j - 1] = 1;
// tmp_a[i][j + 1] = 1;
// }
if (tmp_a[i][j] == 0 && tmp_a[i + 1][j] == 0 && tmp_a[i - 1][j] == 0 && tmp_a[i][j - 1] == 0 && tmp_a[i][j + 1] == 0)
{
cnt++;
}
}
}
maxn = max(maxn, cnt);
}
void max_find()
{
kk();
for (auto p : find_zw)
{
tmp_a[p.first][p.second] = 0;
kk();
dy();
}
}
int main()
{
input();
find_zero_one();
max_find();
cout << maxn << endl;
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...