#include #include #include #include using namespace std;

int largestRectangleArea(vector& heights) { int n = heights.size(); stack stk; vector left(n), right(n, n);

for (int i = 0; i < n; i++) {
    while (!stk.empty() && heights[stk.top()] >= heights[i]) {
        right[stk.top()] = i;
        stk.pop();
    }
    left[i] = stk.empty() ? -1 : stk.top();
    stk.push(i);
}

int maxArea = 0;
for (int i = 0; i < n; i++) {
    int area = (right[i] - left[i] - 1) * heights[i];
    maxArea = max(maxArea, area);
}

return maxArea;

}

int main() { int N, M; cin >> N >> M;

vector<vector<char>> land(N, vector<char>(M));
for (int i = 0; i < N; i++) {
    for (int j = 0; j < M; j++) {
        cin >> land[i][j];
    }
}

vector<int> heights(M, 0);
int maxArea = 0;

for (int i = 0; i < N; i++) {
    for (int j = 0; j < M; j++) {
        if (land[i][j] == 'F') {
            heights[j] += 1;
        } else {
            heights[j] = 0;
        }
    }
    maxArea = max(maxArea, largestRectangleArea(heights));
}

int silver = 3 * maxArea;
cout << silver << endl;

return 0;
有一天小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫玉蟾宫宫主蓝兔盛情地款待了它们并赐予它们一片土地。这片土地被分成NM个格子每个格子里写着R或者FR代表这块土地被赐予了rainbowF代表这块土地被赐予了freda。现在freda要在这里卖萌。。。它要找一块矩形土地要求这片土地都标着F并且面积最大。但是rainbow和freda的OI水平都弱爆了找不出这块土地而蓝兔也想看freda

原文地址: https://www.cveoy.top/t/topic/h6vD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录