51Nod-1157-全是1的最大子矩阵
来源:互联网 发布:淘宝我的发票在哪里看 编辑:程序博客网 时间:2024/05/17 06:15
ACM模版
描述
题解
很经典的一个问题,最大
代码
#include <iostream>using namespace std;const int N = 105;int m, n;bool a[N][N];int Run(const int &m, const int &n) // a[1...m][1...n]{ // O(m*n) int i, j, k, l, r, max = 0; int col[N]; for (j = 1; j <= n; j++) { if (a[1][j] == 0 ) { col[j] = 0; } else { for (k = 2; k <= m && a[k][j] == 1; k++); col[j] = k - 1; } } for (i = 1; i <= m; i++) { if (i > 1) { for (j = 1; j <= n; j++) { if (a[i][j] == 0) { col[j] = 0; } else { if (a[i - 1][j] == 0) { for (k = i + 1; k <= m && a[k][j] == 1; k++); col[j] = k-1; } } } } for (j = 1; j <= n; j++) { if (col[j] >= i) { for (l = j - 1; l > 0 && col[l] >= col[j]; --l); l++; for (r = j + 1; r <= n && col[r] >= col[j]; ++r); r--; int res = (r - l + 1) * (col[j] - i + 1); if( res > max ) { max = res; } } } } return max;}int main(){ cin >> m >> n; for (int i = 1; i <= m; i++) { for (int j = 1; j <= n; j++) { cin >> a[i][j]; } } cout << Run(m, n) << '\n'; return 0;}
参考
《最大
阅读全文
0 0
- 51Nod-1157-全是1的最大子矩阵
- 51nod 1158:全是1的最大子矩阵
- 51nod 1158 全是1的最大子矩阵
- 51Nod-1158-全是1的最大子矩阵
- 51NOD 1158 全是1的最大子矩阵
- 51nod 1158 全是1的最大子矩阵
- 51Nod 1158 全是1的最大子矩阵
- 51nod 1158 全是1的最大子矩阵
- 51nod 1158 全是1的最大子矩阵 (暴力枚举)
- [51nod 1158 全是1的最大子矩阵] 单调栈
- 51nod-1158 全是1的最大子矩阵(单调栈)
- 51nod 1158 全是1的最大子矩阵 单调栈
- 51 nod 1158 全是1的最大子矩阵(单调栈)
- 51Nod 1158 全是1的最大子矩阵【单调栈】
- 51nod 1158 全是1的最大子矩阵 (单调栈) 详细图解
- 全是1的最大子矩阵
- 51nod-1158 . 全是1的最大子矩阵 &&CODEVS-2491 玉蟾宫(枚举+单调栈 or dp)
- 面积最大的全1子矩阵
- html5的基本结构
- CCF-训练50题-NO.16-字符串数字置换
- CCF-训练50题-NO.17-写出来吧
- CCF-训练50题-NO.18-成绩大排队
- CCF-训练50题-NO.19-说反话
- 51Nod-1157-全是1的最大子矩阵
- 个人认为对于初学者很有帮助
- CCF-训练50题-NO.20-A+B和C比大小
- 【1701H1】【穆晨】【171110】连续第三十一天总结
- spring boot 使用spring AOP实现拦截器 修改包名后报错
- cf Educational Codeforces Round 32
- Java小白必须会的一道算法题
- 51Nod-1032-骨牌覆盖 V2
- Mysql 命令