HDU 2830 移动的矩阵 (思维题)
来源:互联网 发布:dota2饰品菠菜知乎 编辑:程序博客网 时间:2024/06/06 16:32
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.
找下规律... 将图像抽象一下。
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int a[1111][1111],pre[1111][1111],h[1111];char s[1111][1111];int main(){int n,m,k,tem,ans;int i,j;while(scanf("%d%d",&n,&m)!=EOF) {for(i=1;i<=n;i++) scanf("%s",s[i]);for(i=1;i<=n;i++) {for(j=0;j<m;j++){a[i][j+1]=s[i][j]-'0';pre[i][j+1]=0;}}for(j=1;j<=m;j++) {for(i=1;i<=n;i++) {if(a[i][j]) pre[i][j]=pre[i-1][j]+1;}}ans=0;for(i=1;i<=n;i++) {for(j=1;j<=m;j++) {h[pre[i][j]]++;}tem=0;for(k=i;k;k--) {ans=max(ans,k*(tem+h[k]));tem+=h[k];}for(k=1;k<=i;k++) h[k]=0;}printf("%d\n",ans);}return 0;}
0 0
- HDU 2830 移动的矩阵 (思维题)
- HDU 5671 矩阵的交换行、交换列,整行加一个数 思维题
- 矩阵的数学思维
- hdu 5171 GTY's birthday gift【矩阵快速幂】【思维】【感受矩阵和数论的神奇】
- HDU 4365 正方形格子涂色中心对称轴对称的涂法有多少种-思维-(矩阵坐标关系&快速幂取模)
- HDU 2830 Matrix Swapping II(最大完全子矩阵之可移动列)
- HDU 2830 Matrix Swapping II (最大完全子矩阵之可移动列)
- HDU 2830 Matrix Swapping II(最大完全子矩阵之可移动列)
- HDU 2830 Matrix Swapping II(最大完全子矩阵之可移动列)
- 中移动的平台思维
- 【HDU】2604 - Queuing(递推 & 思维 & 矩阵构造 & 快速幂)
- HDU 5303 Delicious Apples(思维题)
- HDU 1722 Cake(思维题)
- HDU 5665 Lucky(思维题)【BC】
- HDU 5821 Ball (排序、思维题)
- HDU 5776 sum (思维题)
- HDU-6048 Puzzle(思维题)
- hdu 5101 思维题
- Nginx使用:Ubuntu安装与简单配置
- C++扬帆远航——13(个人所得税计算器)
- Kotlin学习备忘录
- Js apply 方法 详解
- 构建之法感悟
- HDU 2830 移动的矩阵 (思维题)
- 2个线程依次打印出1到10的数
- Xmanager 5 远程连接linux图形界面
- NYOJ-移动小球
- 2016年,C语言该怎样写
- 【平面面积】HDU1071The area
- 第4周项目1-求四个数的最大公约数
- 【追求进步】第一个只出现一次的字符位置
- 【bzoj1096】【ZJOI2007】【仓库建设】【斜率优化dp】