hdu 1505 City Game dp

来源:互联网 发布:nginx 新增模块 编辑:程序博客网 时间:2024/06/01 09:39

给你一个矩阵,让你找最大的矩形面积,F代表3,R代表 0,。

输入用%s 输入

#include<stdio.h>#include<stack>#include<string.h>#include<algorithm>#define maxn 1010using namespace std;int ma[maxn][maxn];int h[maxn];int fact(int m){    int a,sum=0;    stack<int>q;    for(int i=0; i<=m;)    {        if(q.empty()||h[i]>h[q.top()])        {            q.push(i);            i++;        }        else        {            a=q.top();            q.pop();            sum=max(sum,h[a]*(q.empty()?i:i-q.top()-1));        }    }    return sum;}int main(){    int n,m,t;    scanf("%d",&t);    while(t--)    {        scanf("%d%d",&n,&m);        char ch[3];        for(int i=0; i<n; i++)        {            for(int j=0; j<m; j++)            {                scanf("%s",&ch);                if(ch[0]=='R')ma[i][j]=0;                else ma[i][j]=1;            }        }        int sum=0;        memset(h,0,sizeof(h));        for(int i=0; i<n; i++)        {            for(int j=0; j<m; j++)            {                if(ma[i][j]==0)h[j]=0;                else h[j]+=1;            }            sum=max(sum,fact(m));        }        printf("%d\n",sum*3);    }    return 0;}


0 0
原创粉丝点击