最大01 矩阵
http://acm.nuaa.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1017
这个在输入数据时候只能用printf ,用cin会超时
#include<iostream>
#include<stdio.h>
#define MAX 2004
int l[MAX],r[MAX],g[MAX][MAX],h[MAX];
int main(int argc, char *argv[])
{
int n;
scanf("%d",&n);
int i,j;int sum=0;
for(i=1;i<=n;++i) {
for(j=1;j<=n;++j)
scanf("%d",&g[i][j]);
for(j=1;j<=n;++j) {
if(g[i][j])h[j]=0;
else h[j]++;
}
for(j=1;j<=n;++j){
l[j]=j;
while(l[j]-1>=1 && h[l[j]-1]>=h[j])
l[j]=l[l[j]-1];
}
for(j=n;j>=1;--j){
r[j]=j;
while(r[j]+1<=n && h[r[j]+1]>=h[j])
r[j]=r[r[j]+1];
}
for(j=1;j<=n;++j){
int tmp=(r[j]-l[j]+1)*h[j];
if(sum<tmp)sum=tmp;
}
}
printf("%d",sum);
return 0;
}