首页 > 其他分享 >最大子矩阵问题 加强版

最大子矩阵问题 加强版

时间:2023-05-03 10:55:34浏览次数:36  
标签:加强版 int 矩阵 51 long 样例 最大

给定一个二维的数组(含正数或负数),请从中找出和最大的子矩阵。

输入

第一行:n,m

接下来n行m列,表示一个二维数组

输出  和为最大子矩阵的和 样例 样例输入
4 4
0 -2 -7 0
9 2 -6 2
-4 1 -4 1
-1 8 0 -2

样例输出

15

tips:

#include <bits/stdc++.h>
using namespace std;
long int m,n,o,temp = -10000000;
long long a[51][51],b[51][51];
int main(){
    cin>>n>>m;
    for(int i = 1;i<=n;i++) 
        for(int j = 1;j<=m;j++){
            cin>>a[i][j];
            b[i][j] = b[i-1][j] - b[i-1][j-1] + b[i][j-1] + a[i][j];
    } 
    for(int x1 = 1;x1<=n;x1++){
        for(int y1 = 1;y1<=m;y1++){
            for(int x2 = x1;x2<=n;x2++){
                for(int y2 = y1;y2<=m;y2++){
                        o = b[x2][y2] - b[x1-1][y2] - b[x2][y1-1] + b[x1-1][y1-1];
                        if(o>temp) temp = o;
                }
            }
        }
    }
    cout<<temp;
    return 0;
}
View Code

 

标签:加强版,int,矩阵,51,long,样例,最大
From: https://www.cnblogs.com/nasia/p/17368801.html

相关文章

  • 最大子矩阵问题 plus
    这题真难给定一个二维的数组(含正数或负数),请从中找出和最大的子矩阵。输入第一行:n,m接下来n行m列,表示一个二维数组输出和为最大子矩阵的和tips:样例样例输入440-2-7092-62-41-41-180-2 样例输出15ViewCode ......
  • 范德蒙德矩阵行列式 & 循环矩阵行列式的证明
    范德蒙德矩阵的行列式\[\begin{vmatrix}1&1&1&\dots&1\\x_1&x_2&x_3&\dots&x_n\\x_1^2&x_2^2&x_3^2&\dots&x_n^2\\\vdots&\vdots&\vdots&\ddots&\vdots\\......
  • 解决一般图最大匹配的利器——带花树浅析
    Preface好像很久没有学过新算法了罢,或者说没有写过板子的博客了前段时间在DS专题中可能有学过吉司机线段树,不过由于那个重在思想而且最关键的复杂度证明不太懂也就没有专门写篇博客了这次在图论专题中补上了OI时一直没学的带花树,不过好像这个科技现在除了做板子题外还没什么太......
  • 7-006-(LeetCode- 152) 乘积最大子数组
    1.题目读题 考查点 2.解法思路 代码逻辑 具体实现113.总结......
  • PMP-14-矩阵型组织结构
    弱矩阵和平衡矩阵的一个区别就是项目经理是兼职的还是专职的。但是不管是弱矩阵还是平衡矩阵,它和职能型组织结构的区别在于,它至少有了项目经理的岗位。(1)矩阵式组织结构可以分为弱矩阵、平衡矩阵和强矩阵三种;(2)无论是弱矩阵还是平衡矩阵,他们与职能型组织结构相比,至少产生了项目经......
  • 【字节二面算法】NO662 二叉树最大宽度
    [字节二面算法]662.二叉树最大宽度给你一棵二叉树的根节点root,返回树的最大宽度。树的最大宽度是所有层中最大的宽度。每一层的宽度被定义为该层最左和最右的非空节点(即,两个端点)之间的长度。将这个二叉树视作与满二叉树结构相同,两端点间会出现一些延伸到这一层的n......
  • 对称矩阵压缩存储
    #include<stdio.h>#include<stdlib.h>#defineN5voidcompress(inta[][5],intsa[]){inti=0,j=0,k=0;for(i=0;i<5;i++){ for(j=0;j<5;j++) { if(i>=j) { k=i*(i+1)/2+j; sa......
  • 第三章 3.4 特殊矩阵的压缩存储
    一维数组和二维数组的存储二维数组存储分为行优先存储和列优先存储.行优先存储列优先存储压缩存储三角矩阵的压缩存储<对角线上的元素都是每行的第二个元素>稀疏矩阵的存储1.使用数组直接存储2.十字链表法总结......
  • C/C++ 各类型int、long、double、char、long long取值范围(基本类型的最大最小值)
    做题的时候经常会使用到数据类型的最大最小值(如int,long,longlong,char等),我也查了很多次,这次就记下来当笔记吧。参考了C++primeplus、各个博客、教程和c++官网,对C/C++中各个类型int、long、double、char、longlong等基本类型的取值范围即最大最小值总结如下:1字节=8位,......
  • 统计方形(数据加强版)
    统计方形(数据加强版)题目背景1997年普及组第一题题目描述有一个\(n\timesm\)方格的棋盘,求其方格包含多少正方形、长方形(不包含正方形)。输入格式一行,两个正整数\(n,m\)(\(n\leq5000,m\leq5000\))。输出格式一行,两个正整数,分别表示方格包含多少正方形、长方形(不包含正......