社区讨论

样例过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 条回复,欢迎继续交流。

正在加载回复...