51NOD 1158 全是1的最大子矩阵
来源:互联网 发布:淘宝怎么提升排名靠前 编辑:程序博客网 时间:2024/05/17 03:06
传送门
很像最大子矩阵和
#include<stdio.h>#include<bits/stdc++.h>#define ll long long#define pii pair<int,int>#define pll pair<ll,ll>#define MEM(a,x) memset(a,x,sizeof(a))#define lowbit(x) ((x)&-(x))using namespace std;const int inf=1e9+7;const int INF = inf;const int N = 500 + 5;int a[N][N];int sum[N],b[N];int maxLen(int*a,int m){ int sum=0; int ans=0; for(int i=0;i<m;++i){ sum+=a[i]; if(sum<0){ sum=0; } ans=max(ans,sum); } return ans;}int slove(int n,int m){ int ans=0; for(int i=0;i<n;++i){ fill(sum,sum+m,0); for(int j=i;j<n;++j){ for(int k=0;k<m;++k){ sum[k]+=a[j][k]; b[k]=(sum[k]==(j-i+1)?1:-inf); } ans=max(ans,(j-i+1)*maxLen(b,m)); } } return ans;}int main(){ //freopen("/home/lu/code/r.txt","r",stdin); //freopen("/home/lu/code/w.txt","w",stdout); int m,n; while(~scanf("%d%d",&m,&n)){ for(int i=0;i<n;++i){ for(int j=0;j<m;++j){ scanf("%d",&a[i][j]); } } printf("%d\n",slove(n,m)); } return 0;}
阅读全文
0 0
- 51nod 1158:全是1的最大子矩阵
- 51nod 1158 全是1的最大子矩阵
- 51Nod-1158-全是1的最大子矩阵
- 51NOD 1158 全是1的最大子矩阵
- 51nod 1158 全是1的最大子矩阵
- 51Nod 1158 全是1的最大子矩阵
- 51nod 1158 全是1的最大子矩阵
- 51Nod-1157-全是1的最大子矩阵
- 51nod 1158 全是1的最大子矩阵 (暴力枚举)
- [51nod 1158 全是1的最大子矩阵] 单调栈
- 51nod-1158 全是1的最大子矩阵(单调栈)
- 51nod 1158 全是1的最大子矩阵 单调栈
- 51 nod 1158 全是1的最大子矩阵(单调栈)
- 51Nod 1158 全是1的最大子矩阵【单调栈】
- 51nod 1158 全是1的最大子矩阵 (单调栈) 详细图解
- 51nod-1158 . 全是1的最大子矩阵 &&CODEVS-2491 玉蟾宫(枚举+单调栈 or dp)
- 全是1的最大子矩阵
- 面积最大的全1子矩阵
- [LeetCode]169.Majority Element
- Unity3D 设计模式---策略模式
- 轮播图Banner使用
- HDU 5534 Partial Tree 【完全背包+思维】
- 基于Scikit-Learn的五个文本分类案例研究
- 51NOD 1158 全是1的最大子矩阵
- [初学笔记] matlab中怎么把数据循环写入Excel
- linux IO多路复用机制(select、poll、epoll)及5种IO模型
- caioj1065 DP
- 国内外十大搜索引擎
- Android消息机制
- 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
- POJ 1269 Intersecting Lines
- TCP编程