P4147 玉蟾宫

点击查看代码
#include<bits/stdc++.h>
using namespace std;

const int N=1010,M=1010;
int h[M];
int a[N][N];
int stk[N],tt=0;
int n,m;
int l[M],r[M];

int main()
{
    ios::sync_with_stdio(0),cin.tie(0);
    cin>>n>>m;

    int ans=0;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            char c;
            cin>>c;
            if(c=='F') h[j]++;
            else h[j]=0;
        }

        tt=0;
        for(int j=1;j<=m;j++){
            while(tt&&h[stk[tt]]>=h[j]) tt--;

            if(tt==0) l[j]=0;
            else l[j]=stk[tt];
            stk[++tt]=j;
        }

        tt=0;
        for(int j=m;j>=1;j--){
            while(tt&&h[stk[tt]]>=h[j]) tt--;

            if(tt==0) r[j]=m+1;
            else r[j]=stk[tt];
            stk[++tt]=j;
        }

        for(int j=1;j<=m;j++){
            int len=r[j]-l[j]-1;
            int area=len*h[j];
            ans=max(ans,area);
        }
    }

    cout<<3*ans<<endl;

    return 0;
}

posted @ 2026-02-05 21:39  AnoSky  阅读(0)  评论(0)    收藏  举报