Largest Submatrix
来源:互联网 发布:淘宝指数网 编辑:程序博客网 时间:2024/04/27 16:00
http://acm.hdu.edu.cn/showproblem.php?pid=2870
#include<stdio.h>
#include<string.h>
int a[1010][1010],b[1010][1010],c[1010][1010],l[1010],r[1010];
int main()
{
int n,m,i,j,area;
char ch;
while(scanf("%d%d",&m,&n)!=EOF)
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
for(i=1;i<=m;i++)
{
getchar();
for(j=1;j<=n;j++)
{
scanf("%c",&ch);
if(ch=='a'||ch=='w'||ch=='y'||ch=='z')
a[i][j]=a[i-1][j]+1;
else
a[i][j]=0;
if(ch=='b'||ch=='w'||ch=='x'||ch=='z')
b[i][j]=b[i-1][j]+1;
else
b[i][j]=0;
if(ch=='c'||ch=='x'||ch=='y'||ch=='z')
c[i][j]=c[i-1][j]+1;
else
c[i][j]=0;
}
}
area=0;
l[0]=1;
r[n+1]=n;
for(i=1;i<=m;i++)
{
a[i][0]=a[i][n+1]=-1;
for(j=1;j<=n;j++)
{
l[j]=j;
while(a[i][l[j]-1]>=a[i][j])
l[j]=l[l[j]-1];
}
for(j=n;j>=1;j--)
{
r[j]=j;
while(a[i][r[j]+1]>=a[i][j])
r[j]=r[r[j]+1];
}
for(j=1;j<=n;j++)
if(a[i][j]*(r[j]-l[j]+1)>area)
area=a[i][j]*(r[j]-l[j]+1);
b[i][0]=b[i][n+1]=-1;
for(j=1;j<=n;j++)
{
l[j]=j;
while(b[i][l[j]-1]>=b[i][j])
l[j]=l[l[j]-1];
}
for(j=n;j>=1;j--)
{
r[j]=j;
while(b[i][r[j]+1]>=b[i][j])
r[j]=r[r[j]+1];
}
for(j=1;j<=n;j++)
if(b[i][j]*(r[j]-l[j]+1)>area)
area=b[i][j]*(r[j]-l[j]+1);
c[i][0]=c[i][n+1]=-1;
for(j=1;j<=n;j++)
{
l[j]=j;
while(c[i][l[j]-1]>=c[i][j])
l[j]=l[l[j]-1];
}
for(j=n;j>=1;j--)
{
r[j]=j;
while(c[i][r[j]+1]>=c[i][j])
r[j]=r[r[j]+1];
}
for(j=1;j<=n;j++)
if(c[i][j]*(r[j]-l[j]+1)>area)
area=c[i][j]*(r[j]-l[j]+1);
}
printf("%d\n",area);
}
return 0;
}
- Largest Submatrix
- Largest Submatrix
- Largest Submatrix
- HDU 2870 Largest Submatrix
- hdu 2870 Largest Submatrix
- hdu 2870 Largest Submatrix
- hdu 2870 Largest Submatrix
- hdu 2870 Largest Submatrix
- HDU--2870--Largest Submatrix
- UVa:836 Largest Submatrix
- hdu 2870 Largest Submatrix
- hdu 2870 Largest Submatrix
- HDU - 2870 Largest Submatrix
- 【DP】HDU2870 Largest Submatrix
- Maximum Submatrix & Largest Rectangle
- hdu 2870 - Largest Submatrix
- UVa 836 - Largest Submatrix
- HDU 2870 Largest Submatrix
- vs2010和visual assist X安装
- 【转载】进程与线程的一个简单解释
- Oil Skimming——最大二分匹配
- J2EE的十三个技术——JSP
- USACO6.5.5 Checker Challenge( checker)
- Largest Submatrix
- mysql包含
- 黑马程序员----OC学习之成员变量的get,set方法多种实现
- [算法系列之十五]Strassen矩阵相乘算法
- Java命名规则
- UEFI开发之应用开发
- iOS 开发 ——发布应用到App Store 详细教程 (待续)
- 【三层】大神与菜鸟的区别
- Android stadio去掉标题