哪个大佬有优化的方法(精益求精)
  • 板块P4147 玉蟾宫
  • 楼主hyc12528
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/2/28 19:51
  • 上次更新2023/10/23 23:30:09
查看原帖
哪个大佬有优化的方法(精益求精)
578809
hyc12528楼主2023/2/28 19:51
#include <bits/stdc++.h>
using namespace std;

int ans = 0;
int sum[1005];
int num;
stack<int> s;

int main() {
    int n, m;
    scanf("%d%d", &n, &m);
    sum[m + 1] = -1;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= m; j++) {
            char c = getchar();
            while (c != 'R' && c != 'F') {
                c = getchar();
            }
            if (c == 'F') {
                sum[j]++;
            } else {
                sum[j] = 0;
            }
        }
        for (int j = 1; j <= m + 1; j++) {
            while (!s.empty() && sum[s.top()] > sum[j]) { //非空且老元素比新元素大
                num = s.top();
                s.pop();
                ans = max(ans, (j - (s.empty() ? 0 : s.top()) - 1) * sum[num]);
            }
            s.push(j);
        }
        s.pop();
    }
    printf("%d", ans * 3);
    return 0;
}
2023/2/28 19:51
加载中...