关于string和char[]的疑惑(ABC351D)
  • 板块题目总版
  • 楼主lcy666666
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/4/27 23:07
  • 上次更新2024/4/28 14:53:27
查看原帖
关于string和char[]的疑惑(ABC351D)
491219
lcy666666楼主2024/4/27 23:07

这份代码

#include <bits/stdc++.h>
using namespace std;
const int dx[] = {0, 0, 1, -1}, dy[] = {1, -1, 0, 0};
int h, w, ans, vis[1005][1005];
char s[1005][1005];

int dfs(int x, int y, int t)
{
    if (x < 1 || x > h || y < 1 || y > w || vis[x][y] >= t)
        return 0;
    int ret = 1;
    for (int i = 0; i < 4; i++)
        if (s[x + dx[i]][y + dy[i]] == '#')
            return vis[x][y] = t, ret;
    vis[x][y] = 1e9;
    for (int i = 0; i < 4; i++)
        ret += dfs(x + dx[i], y + dy[i], t);
    return ret;
}

int main()
{
    cin >> h >> w;
    for (int i = 1; i <= h; i++)
        for (int j = 1; j <= w; j++)
            if (cin >> s[i][j]; s[i][j] == '#')
                vis[i][j] = 1e9;
    for (int i = 1; i <= h; i++)
        for (int j = 1; j <= w; j++)
            if (!vis[i][j])
                ans = max(ans, dfs(i, j, i * w + j));
    cout << ans;
    return 0;
}

与这份代码

#include <bits/stdc++.h>
using namespace std;
const int dx[] = {0, 0, 1, -1}, dy[] = {1, -1, 0, 0};
int h, w, ans, vis[1005][1005];
string s[1005];

int dfs(int x, int y, int t)
{
    if (x < 1 || x > h || y < 1 || y > w || vis[x][y] >= t)
        return 0;
    int ret = 1;
    for (int i = 0; i < 4; i++)
        if (s[x + dx[i]][y + dy[i]] == '#')
            return vis[x][y] = t, ret;
    vis[x][y] = 1e9;
    for (int i = 0; i < 4; i++)
        ret += dfs(x + dx[i], y + dy[i], t);
    return ret;
}

int main()
{
    cin >> h >> w;
    for (int i = 1; i <= h; i++)
    {
        cin >> s[i], s[i] = ' ' + s[i] + ' ';
        for (int j = 1; j <= w; j++)
            if (s[i][j] == '#')
                vis[i][j] = 1e9;
    }
    for (int i = 1; i <= h; i++)
        for (int j = 1; j <= w; j++)
            if (!vis[i][j])
                ans = max(ans, dfs(i, j, i * w + j));
    cout << ans;
    return 0;
}

只有s数组的类型和输入部分有所不同,但是后者却会WA掉4个点(分别是random_03.txt、random_04.txt、random_05.txt、random_35.txt),请问是哪里出了问题?

2024/4/27 23:07
加载中...