1 条题解

  • 1
    @ 2026-6-14 11:27:01
    #include<bits/stdc++.h>
    using namespace std;
    const int N = 2011;
    int s[N][N], R[N][N], L[N][N], U[N][N], D[N][N];
    int main()
    {
        int h, w; cin >> h >> w;
        for (int i = 1; i <= h; i++)
        {
            for (int j = 1; j <= w; j++)
            {
                char c; cin >> c;
                s[i][j] = (c == '#');
            }
        }
        for (int i = 1; i <= h; i++)
        {
            for (int j = 1; j <= w; j++)
            {
                if (s[i][j] == 1) continue;
                R[i][j] = R[i][j-1] + 1;
                D[i][j] = D[i-1][j] + 1;
            }
        }
        for (int i = h; i >= 1; i--)
        {
            for (int j = w; j >= 1; j--)
            {
                if (s[i][j] == 1) continue;
                L[i][j] = L[i][j+1] + 1;
                U[i][j] = U[i+1][j] + 1;
            }
        }
        int ans = 0;
        for (int i = 1; i <= h; i++)
        {
            for (int j = 1; j <= w; j++)
            {
                int t = L[i][j] + R[i][j] + U[i][j] + D[i][j] - 3;
                ans = max(ans, t);
            }
        }
        cout << ans;
        return 0;
    }
    
    • 1

    信息

    ID
    11670
    时间
    2000ms
    内存
    1024MiB
    难度
    9
    标签
    递交数
    83
    已通过
    9
    上传者