题解 | #最大子矩阵#

最大子矩阵

http://www.nowcoder.com/practice/a5a0b05f0505406ca837a3a76a5419b3

#include<iostream>
#include<algorithm>
using namespace std;
int graph[100][100];
int total[100][100];
int dp[100];
int arr[100];
int MaxS(int n){
    int Max = 0;
    for(int i = 0;i < n;++i){
        if(i == 0)
            dp[i] = arr[i];
        else
            dp[i] = max(arr[i],dp[i - 1] + arr[i]);
        Max = max(dp[i],Max);
    }
    return Max;
}
int MaxMatrix(int n)
{
    int Max = 0;
    for(int i = 0;i < n;++i){
        for(int j = i;j < n;++j){
            for(int k = 0;k < n;++k){
                if(i == 0)
                    arr[k] = total[j][k];
                else
                    arr[k] = total[j][k] - total[i - 1][k];
            }
            int current = MaxS(n);
            Max = max(Max,current);
        }
    }
    return Max;
}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n;
    while(cin >> n){
        for(int i = 0;i < n;++i){
            for(int j = 0;j < n;++j){
                cin >> graph[i][j];
                if(i == 0)
                    total[i][j] = graph[i][j];
                else
                    total[i][j] = total[i - 1][j] + graph[i][j];
            }
        }
        int ans = MaxMatrix(n);
        cout << ans << endl;
    }
}
全部评论

相关推荐

2025-12-28 16:32
重庆邮电大学 Java
程序员花海:1.技能放最后,来面试默认你都会,技能没啥用 2.实习写的看起来没啥含金量,多读读部门文档,包装下 接LLM这个没含金量 也不要用重构这种 不会给实习生做的 3.抽奖这个还是Demo项目,实际在公司里面要考虑策略,满减,触发点,触发规则 库存 之类的,不是这个项目这么简单 4.教育背景提前,格式为 教育背景 实习 项目 技能 自我评价
简历被挂麻了,求建议
点赞 评论 收藏
分享
柱柱想躺平:这是好事啊
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务