uva1330
来源:互联网 发布:mac无法删除文件 编辑:程序博客网 时间:2024/06/05 21:15
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int n,m;int mat[1010][1010],leftt[1010][1010],rightt[1010][1010],high[1010][1010];int max(int a,int b){ if(a>b) return a; return b;}int min(int a,int b){ if(a>b) return b; return a;}int solve(){ int i,j; int ans=0; for(i=1;i<=n;i++){ int leftnum=0; for(j=1;j<=m;j++){ if(mat[i][j]==0) { leftnum=j; leftt[i][j]=0; high[i][j]=0; } else { leftt[i][j]=i==1?leftnum+1:max(leftt[i-1][j],leftnum+1); high[i][j]=i==1?1:high[i-1][j]+1; } } int rightnum=m+1; for(j=m;j>=1;j--){ if(mat[i][j]==0){ rightnum=j; rightt[i][j]=m+1; } else { rightt[i][j]=i==1?rightnum-1:min(rightt[i-1][j],rightnum-1); ans=max(ans,high[i][j]*(rightt[i][j]-leftt[i][j]+1)); } } } return 3*ans;}int main(){ int t; cin>>t; while(t--) { scanf("%d%d",&n,&m);int i,j;for(i=1;i<=n;i++)for(j=1;j<=m;j++){ char c=getchar(); while(c!='F'&&c!='R') c=getchar(); mat[i][j]=c=='F'?1:0;}printf("%d\n",solve()); } return 0;}
0 0
- uva1330
- uva1330 - City Game
- 【UVA1330】City game
- 【巧妙预处理系列】【UVA1330】City game
- 例题1.22 最大子矩阵 UVa1330
- Linux笔记_进程通讯——管道
- uva 1030 Image Is Everything(迭代更新)
- Linux笔记_进程通讯——信号通讯
- Linux笔记_进程通讯——共享内存
- Hashcode的作用
- uva1330
- 卡尔曼滤波MATLAB源代码,from智慧石
- Linux笔记_进程通讯——消息队列
- 比较两个数组的大小
- HDU4311 Meeting point-1(曼哈顿距离)
- equals和hashCode解析
- 【JavaScript】打印星型金字塔
- poj 2907 Collecting Beepers 邮递员问题暴力解法
- MFC 消息映射 消息传递MESSAGE_MAP 读深入浅出MFC感悟