HDu 2830 Matrix Swapping II(dp)
来源:互联网 发布:签名教学软件 编辑:程序博客网 时间:2024/05/17 03:54
Problem Description
Given an N * M matrix with each entry equal to 0 or 1. We can find some rectangles in the matrix whose entries are all 1, and we define the maximum area of such rectangle as this matrix’s goodness.
We can swap any two columns any times, and we are to make the goodness of the matrix as large as possible.
We can swap any two columns any times, and we are to make the goodness of the matrix as large as possible.
Input
There are several test cases in the input. The first line of each test case contains two integers N and M (1 ≤ N,M ≤ 1000). Then N lines follow, each contains M numbers (0 or 1), indicating the N * M matrix
Output
Output one line for each test case, indicating the maximum possible goodness.
Sample Input
3 41011100100013 4101010010001
Sample Output
42Note: Huge Input, scanf() is recommended.
Source
题意:一列一列的移动图,问最大的1组成的面积?
思路:每一行中,对高排序,高就是a【i】,长就是i,我代码中是j,然后就可以求最优解了
</pre><pre name="code" class="cpp">#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;#define N 1005int h[N],a[N];int n,m;int cmp(int a,int b){ return a>b;}int main(){ int i,j; char c; while(~scanf("%d%d",&n,&m)) { getchar(); memset(h,0,sizeof(h)); int ans=0; for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { scanf("%c",&c); if(c=='1') h[j]++; else h[j]=0; } getchar(); for(j=1;j<=m;j++) a[j]=h[j]; sort(a+1,a+m+1,cmp); //强调一次,是一列一列的移动 for(j=1;j<=m;j++) ans=max(ans,a[j]*j); } printf("%d\n",ans); } return 0;}
0 0
- HDu 2830 Matrix Swapping II(dp)
- HDU-2830-Matrix Swapping II(DP)
- Matrix Swapping II - HDU 2830 dp
- hdu 2830 Matrix Swapping II (dp+树状数组)
- hdu - 2830 - Matrix Swapping II(排序)
- hdu 2830 Matrix Swapping II
- HDU 2830 Matrix Swapping II
- hdu 2830 Matrix Swapping II
- hdu 2830 Matrix Swapping II
- hdu 2830 Matrix Swapping II
- hdu 2830 Matrix Swapping II
- HDU 2830 Matrix Swapping II
- hdu 2830 Matrix Swapping II
- hdu 2830 - Matrix Swapping II
- HDU 2830 Matrix Swapping II
- HDU 2830 Matrix Swapping II
- hdu 2830 Matrix Swapping II
- hdu 2830 Matrix Swapping II
- 数据结构——栈之链栈
- LPC2478的SPI使用
- 78 链表和数组的区别
- telnet连接过程及数据包分析
- Oracle字符串处理函数
- HDu 2830 Matrix Swapping II(dp)
- oracle 过程函数,包的区别和联系
- Ubuntu 安装 subversion
- PRML 阅读笔记(七)<2.3.3-2.3.9>
- 委托(一)C# 中委托的发展
- Linux文件操作及类型详解
- Unit 5: The Writing Process
- c#如何对 Windows 窗体控件进行线程安全调用
- HDU 1398 Square Coins 母函数