hdu1505 City Game

来源:互联网 发布:淘宝店现在还挣钱么 编辑:程序博客网 时间:2024/06/05 09:27

hdu1506 加强版
 

#include <fstream>#include <iostream>#include <string>#include <complex>#include <math.h>#include <set>#include <vector>#include <map>#include <queue>#include <stdio.h>#include <stack>#include <algorithm>#include <list>#include <ctime>#include <memory.h>#include <ctime>#include <assert.h>#define rep(i,a,n) for (int i=a;i<n;i++)#define per(i,a,n) for (int i=n-1;i>=a;i--)#define pb push_back#define mp make_pair#define all(x) (x).begin(),(x).end()#define fi first#define se second#define eps 1e-8#define M_PI 3.141592653589793typedef long long ll;const ll mod=1000000007;const int inf=99999999;ll powmod(ll a,ll b) {ll res=1;a%=mod;for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;}using namespace std;const int maxn=1100;int a[maxn],l[maxn],r[maxn];char M[maxn][maxn];int main(){    int T;scanf("%d",&T);    while(T--){        int n,m;scanf("%d %d",&n,&m);        getchar();        for(int i=1;i<=n;i++){            for(int j=1;j<=m;j++){                scanf("%c",&M[i][j]);                getchar();            }        }        int res=0;        memset(a,0,sizeof(a));        a[0]=a[m+1]=-1;        for(int i=1;i<=n;i++){            for(int j=1;j<=m;j++){                if(M[i][j]=='F') a[j]+=1;                else if(M[i][j]=='R') a[j]=0;            }            for(int j=1;j<=m;j++) l[j]=r[j]=j;            for(int j=1;j<=m;j++){                while(a[l[j]-1]>=a[j])  l[j]=l[l[j-1]];            }            for(int j=m;j>=1;j--){                while(a[r[j]+1]>=a[j]) r[j]=r[r[j+1]];            }            for(int j=1;j<=m;j++)                res=max(res,(r[j]-l[j]+1)*a[j]);        }        printf("%d\n",3*res);    }}
0 0
原创粉丝点击