HDU-2830最大矩形问题(三)
来源:互联网 发布:远程网络教育的优势 编辑:程序博客网 时间:2024/05/25 21:33
不BB了,上原题
Matrix Swapping II
Time Limit:3000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uDescription
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.
思路:
跟该系列第二题不一样,这一题能移动,刚开始我以为要难一点,其实要简单多了,前面的做法跟第二题一样,然后对每一行dp排个序就行了,把大的放一块,都不用再加辅助数组了,直接遍历最后找最大值就行了:
//Li Wenjun//emai:1542113545@qq.com/*「“04.24,サクラと东京スカイツリーに行った。そこは世界で一番暖かいところだ。”“04.26,サクラと明治神宫に行った。そこで结婚式お挙げる人がいた。”“04.25,サクラとデイズニーに行った。お化け屋敷が怖かったけど、サクラがいたから、全然怖くわなかった。”“サクラのことが大好き。”」*/
#include<stdio.h>#include<string.h>#include<math.h>#include <iostream>#include <algorithm>using namespace std;int dp[1010][1010];char a[1010];int N,M;int cmp(int a,int b){ if(a<b) return 1; else return 0;}int main(){ cin.tie(0); cin.sync_with_stdio(false); // freopen("in.txt","r",stdin); while(cin>>N>>M) { memset(dp,0,sizeof(dp)); for(int i=1;i<=N;i++) { cin>>a; for(int j=0;j<M;j++) { if(a[j]=='1') { dp[i][j]=dp[i-1][j]+1; } else { dp[i][j]=0; } } } int maxs=0; for(int i=N;i>=1;i--) { sort(dp[i],dp[i]+M+1,cmp); for(int j=M;j>=1;j--) { if(dp[i][j]==0) break; else if((M-j+1)*dp[i][j]>maxs) maxs= (M-j+1)*dp[i][j]; } } cout<<maxs<<endl; } return 0;}
0 0
- HDU-2830最大矩形问题(三)
- HDU-1506最大矩形问题(一)
- HDU-1505 最大矩形问题(二)
- HDU-2870最大矩形问题(四)
- City Game(DP,最大矩形问题)
- Largest Submatrix(DP,最大矩形问题)
- 最大矩形面积问题
- 柱状图最大矩形问题
- 直方图最大矩形问题
- HDU 1081 最大矩形和
- hdu 1506 最大子矩形
- HDU 2830 Matrix Swapping II (最大列可移动子矩形面积)
- hdu 2830 逐行扫描dp求最大完全矩形
- HDU 1505 City Game (最大子矩形面积)
- HDU 2870 Largest Submatrix (最大子矩形面积)
- hdu 2830(矩形dp)
- 最大的矩形问题描述
- 直方图内最大矩形问题
- Codeforces Round #364 (Div. 2) C. They Are Everywhere (尺取法)
- Batch Normalization 学习
- Qt的四个常见的图像叠加模式
- 计算机网络-可靠数据传输机制及其用途总结
- UVA 12898 AND OR
- HDU-2830最大矩形问题(三)
- 【图像处理】基本形态学操作
- JAVA8新特性 函数式编程Lambda
- 视频教程
- 使用 iframe 引用优酷和土豆和腾讯视频,支持 HTML5 手机 播放
- e = e || window.event用法细节讨论
- 【NYOJ1291】不是匹配
- fastdfs分布式架构设计
- Codeforces Round #366 (Div. 2) A. Hulk