标签:des style color os io for cti ar
2 5 6 R F F F F F F F F F F F R R R F F F F F F F F F F F F F F F 5 5 R R R R R R R R R R R R R R R R R R R R R R R R R
45 0
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<limits.h>
using namespace std;
const int maxn=1100;
char mp[maxn][maxn];
int a[maxn][maxn];
int l[maxn],r[maxn];
int n,m,t;
int main()
{
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
getchar();
for(int i=1;i<=m;i++)
a[0][i]=0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
cin>>mp[i][j];
}
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
if(mp[j][i]=='F')
a[j][i]=a[j-1][i]+1;
else
a[j][i]=0;
}
}
int ans=-1;
for(int i=1;i<=n;i++)
{
l[1]=1;
r[m]=m;
for(int j=2;j<=m;j++)
{
if(a[i][j]==0)
continue;
int t=j;
while(t>1&&a[i][j]<=a[i][t-1])
t=l[t-1];
l[j]=t;
}
for(int j=m-1;j>=1;j--)
{
if(a[i][j]==0)
continue;
int t=j;
while(t<m&&a[i][j]<=a[i][t+1])
t=r[t+1];
r[j]=t;
}
for(int j=1;j<=m;j++)
{
if((r[j]-l[j]+1)*a[i][j]>ans)
ans=(r[j]-l[j]+1)*a[i][j];
}
}
printf("%d\n",ans*3);
}
return 0;
}
HDU 1505 City Game,布布扣,bubuko.com
标签:des style color os io for cti ar
原文地址:http://blog.csdn.net/u013582254/article/details/38331903