soj 3329 Maximum Submatrix II【轉帖】

來源:互聯網
上載者:User

題目描述:

Have you ever watched the movie Matrix ? 
In that movie, 
the term Matrix does not mean a mathematical thing, 
but a complicated AI system. 

In this problem, 
we will go back to the original meaning of matrix. 
Given a 0-1 matrix, 
you are required to find the maximum submatrix in it 
which contains only 0s.

Input

The first line of input is the number of test case.
For each test case:
The first line contains two integers N and M.
The next N lines each contains M integers, Aij.
There is a blank line before each test case.

1 <= N,M <= 1000
0 <= Aij <= 1

Output

For each test case output the answer on a single line.

Sample Input

2

2 2
0 0
0 0

4 5
1 0 1 0 0
0 1 0 0 0
0 0 1 0 0
1 1 0 0 0

Sample Output

4
8

Source

8th SCUPC

Author

This problem is in memory of SOJ2096--Maximum Submatrix.

#include<stdio.h><br />#define N 1005<br />int a[N][N],b[N],left[N],right[N];<br />int main()<br />{<br /> int i,j,n,m,k,t;<br /> scanf("%d",&t);<br /> while(t--)<br /> {<br /> scanf("%d%d",&n,&m);<br /> for(i=1;i<=n;i++)<br /> {<br /> for(j=1;j<=m;j++)<br /> {<br /> scanf("%d",&a[i][j]);<br /> b[j]=0;<br /> }<br /> }<br /> int max=0;<br /> for(i=1;i<=n;i++)<br /> {<br /> for(j=1;j<=m;j++)<br /> {<br /> if(a[i][j]==0)<br /> b[j]++;<br /> else<br /> b[j]=0;<br /> left[j]=right[j]=j;<br /> }<br /> left[1]=0;<br /> right[m]=m+1;<br /> for(j=2;j<=m;j++)<br /> {<br /> k=j-1;<br /> while(k>0)<br /> {<br /> if(b[j]<=b[k])<br /> k=left[k];<br /> else<br /> break;<br /> }<br /> left[j]=k;<br /> }<br /> for(j=m-1;j>=1;j--)<br /> {<br /> k=j+1;<br /> while(k<=m)<br /> {<br /> if(b[j]<=b[k])<br /> k=right[k];<br /> else<br /> break;<br /> }<br /> right[j]=k;<br /> }<br /> for(j=1;j<=m;j++)<br /> {<br /> if(b[j]*(right[j]-left[j]-1)>max)<br /> max=b[j]*(right[j]-left[j]-1);<br /> }<br /> }<br /> printf("%d/n",max);<br /> }<br /> return 0;<br />} 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.