【最大子矩阵】hdu 2870
来源:互联网 发布:ronald jenkees知乎 编辑:程序博客网 时间:2024/06/05 03:10
该题首先转化为只含有a,b,c的矩阵,然后对每一行dp求该列连续相同字母的最大高度,然后就可以每行每行地gao,又转化为求最大矩阵面积,就像hdu 1506一样,迭代地求左右>=当前高度的下标,hdu 1506代码看这里
#include <list>#include <map>#include <set>#include <queue>#include <string>#include <deque>#include <stack>#include <algorithm>#include <iostream>#include <iomanip>#include <cstdio>#include <cmath>#include <cstdlib>#include <limits.h>#include <time.h>#include <string.h>using namespace std;#define LL long long#define PI acos(-1.0)#define Max INT_MAX#define Min INT_MIN#define eps 1e-8#define FRE freopen("a.txt","r",stdin)#define N 1010int max(int a,int b){return a>b?a:b;}char str[N][N];int dp[N][N];int l[N],r[N];int n,m;int ans;void gao(){ int i,j,k; for(i=1;i<=n;i++){ for(j=1;j<=m;j++){ l[j]=j; r[j]=j; } dp[i][0]=dp[i][m+1]=-1; for(j=1;j<=m;j++) while(dp[i][l[j]-1] >= dp[i][j]) l[j]=l[l[j]-1]; for(j=m;j>=1;j--) while(dp[i][r[j]+1] >= dp[i][j]) r[j]=r[r[j]+1]; for(j=1;j<=m;j++) ans=max(ans,(r[j]-l[j]+1)*dp[i][j]); }}int main(){ while(scanf("%d%d",&n,&m)!=EOF){ int i,j; for(i=1;i<=n;i++)scanf("%s",str[i]+1); for(i=0;i<=m;i++)dp[0][i]=0; ans=0; for(i=1;i<=n;i++){ for(j=1;j<=m;j++){ if(str[i][j]=='a' || str[i][j]=='w' || str[i][j]=='y' || str[i][j]=='z') dp[i][j]=dp[i-1][j]+1; else dp[i][j]=0; } } gao(); for(i=1;i<=n;i++){ for(j=1;j<=m;j++){ if(str[i][j]=='b' || str[i][j]=='w' || str[i][j]=='x' || str[i][j]=='z') dp[i][j]=dp[i-1][j]+1; else dp[i][j]=0; } } gao(); for(i=1;i<=n;i++){ for(j=1;j<=m;j++){ if(str[i][j]=='c' || str[i][j]=='x' || str[i][j]=='y' || str[i][j]=='z') dp[i][j]=dp[i-1][j]+1; else dp[i][j]=0; } } gao(); printf("%d\n",ans); } return 0;}
- 【最大子矩阵】hdu 2870
- HDU 2870 Largest Submatrix (最大子矩阵)
- Largest Submatrix-最大子矩阵-HDU-2870
- HDU 2870 DP 最大完全子矩阵
- hdu 2870 Largest Submatrix 最大子矩阵
- hdu 2870 Largest Submatrix 最大子矩阵
- #HDU 2870 dp最大子矩阵
- HDU 2870(动态规划-最大子矩阵)
- 最大子矩阵 hdu 1559
- HDU 1559 最大子矩阵
- HDU 1081 最大子矩阵
- hdu 1505 最大子矩阵
- HDU 1559 最大子矩阵
- HDU 1559 最大子矩阵
- hdu 1559 最大子矩阵
- HDU 1559 最大子矩阵
- HDU-1559最大子矩阵
- hdu 1559 最大子矩阵
- jQuery插件开发全解析
- linux cmd
- JAVA面试题大全
- 使用HTTP GET 和HTTP POST请求访问HTTP资源
- 错误: _malloc 已经在 Libcmtd.lib 中定义, 引发的思考
- 【最大子矩阵】hdu 2870
- 插入排序
- 合并排序
- 冒泡排序
- 堆排序
- 《COM 原理与应用》学习笔记 - 第一部分 COM原理收藏
- 利用堆之优先队列
- 策略模式(1)——基本思想
- 策略模式(2)——c++接口类的实现