二维前缀和+爆搜
复杂度 O(n2m2)
加个小剪枝吸氧直接过(1e12),离大谱
评测记录
Code:
#include<bits/stdc++.h>
using namespace std;
int prefix[1010][1010],n,m,temp,ans;
char ch;
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
cin>>ch;
ch=='F'? temp=1:temp=0;
prefix[i][j]=prefix[i-1][j]+prefix[i][j-1]-prefix[i-1][j-1]+temp;
}
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
for(int x=i;x<=n;x++)
for(int y=j;y<=m;y++)
{
if((x-i+1)*(y-j+1)==prefix[x][y]-prefix[i-1][y]-prefix[x][j-1]+prefix[i-1][j-1])
ans=max(ans,(x-i+1)*(y-j+1));
else break;
}
cout<<ans*3;
}