hdu 1505
来源:互联网 发布:乐外卖是什么软件 编辑:程序博客网 时间:2024/06/03 20:09
此题要求最大子矩阵:并且子矩阵要全为F;
本题类似hdu 1506 ;
对每一行,求出含有F的高度,然后对这一行求最大面积和(相当于1506)
#include <iostream>#include <cstdio>#include <cstring>using namespace std;int height[1111][1111];int r[1111][1111],l[1111][1111];int main(){ int i,j,k,m,n,b; char s[11]; int t; cin>>t; while(t--) { cin>>m>>n; memset(height,0,sizeof(height)); int ans=0; int sum; for(i=1; i<=m; i++) { for(j=1; j<=n; j++) { scanf("%s",s); if(s[0]=='F') height[i][j]=height[i-1][j]+1; else if(s[0]=='R') height[i][j]=0; r[i][j]=l[i][j]=j; } } i=1; for(i=1; i<=m; i++) { for(j=2;j<=n;j++) { k=j; while(k>1&&height[i][k]<=height[i][k-1]) { k=l[i][k-1]; } l[i][j]=k; } for(j=n-1;j>=1;j--) { k=j; while(k<n&&height[i][k]<=height[i][k+1]) { k=r[i][k+1]; } r[i][j]=k; } sum=0; for(j=1;j<=n;j++) { b=height[i][j]*(r[i][j]-l[i][j]+1); if(sum<b) sum=b; } if(sum>ans) ans=sum; } cout<<3*ans<<endl; } return 0;}
0 0
- HDU 1505
- HDU 1505
- hdu 1505
- HDU 1505
- hdu 1505
- hdu 1505
- hdu 1505
- hdu-1505
- HDU 1505
- HDU 1505
- HDU 1505
- HDU 1505
- HDU-1506 || HDU-1505 || HDU-2870 || HDU-2830
- hdu 1505 hdu 1506 hdu 2870 综合解答
- HDU 1505 City Game
- hdu 1505 City Game
- HDU 1505 dp
- hdu 1505 #DP
- Apache POI 读取大于10位数字会变科学数字的解决方案
- chap11 stack
- ubuntu 12.04创建多用户及开启telnet远程登录
- IAR包含文件的路径定义
- linux下vim编辑器使用
- hdu 1505
- VS关于“调试并编辑”功能的说明
- POJ-3276(异或DP)
- SQL创建作业
- warning: dereferencing type-punned pointer will break strict-aliasing rules(转)
- 设计细节:IOS应用PATH
- java 操作zip 压缩和解压
- poj 1789 Truck History(prim模板题)
- Linux进程控制