最大子矩阵(贪心)

Posted -iris-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最大子矩阵(贪心)相关的知识,希望对你有一定的参考价值。

虽然我写的是贪心

但这个题哪有贪心的感觉

感觉无从可贪

折磨了我好久之后

我从一篇别人的博客上

受到了启发

类似几何的割补法

将矩阵的行的和算出来

然后再作差比较

得出一块矩阵

在比较之前算出的矩阵权值

看是否大于零,大于零就添上,小于零就舍去

然后进行枚举

然后这个题的核心就差不多了

#include<iostream>
#include<cstdio>
using namespace std;
int N[105][105];
int maxn=-1e3;
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            {
                cin>>N[i][j];
                N[i][j]+=N[i-1][j];
            }
    for(int i=1;i<=n;i++)
        for(int j=i;j<=n;j++)
            {
                    int ans=0;
                    for(int l=1;l<=n;l++)
                        {
                            ans=N[j][l]-N[i-1][l]+max(0,ans);
                            maxn=max(ans,maxn);
                        }
            }
    cout<<maxn;
}

一个细节务必务必务必记得——

maxn初值不能为零,不能为零,不能为零

(就因为这个,几次都没过)

 

以上是关于最大子矩阵(贪心)的主要内容,如果未能解决你的问题,请参考以下文章

POJ1050 To the Max - 贪心[最大子矩阵和]

代码题(35)— 最大和子矩阵

贪心——力扣53.最大子序和&&力扣122.买卖股票的最佳时机Ⅱ

华为OD机试真题Python实现最大子矩阵和真题+解题思路+代码(2022&2023)

LeetCode 剑指Offer 42 连续子数组的最大和[贪心] HERODING的LeetCode之路

华为OD机试 -最大子矩阵和(Python) | 机试题+算法思路+考点+代码解析 2023