#T1224. 最大子矩阵

题目传送

题目描述

已知矩阵的大小定义为矩阵中所有元素的和。给定一个矩阵,你的任务是找到最大的非空(大小至少是1×1)子矩阵。

比如,如下4×4的矩阵

 0  -2   -7   09   2   -6   2 -4    1   -4   1-1    8    0  -2

的最大子矩阵是

 9   2-4   1-1   8

这个子矩阵的大小是15。

输入

输入是一个N×N的矩阵。输入的第一行给出N(0<N≤100)。再后面的若干行中,依次(首先从左到右给出第一行的N个整数,再从左到右给出第二行的N个整数……)给出矩阵中的N2个整数,整数之间由空白字符分隔(空格或者空行)。已知矩阵中整数的范围都在[−127,127]。

输出

输出最大子矩阵的大小。

样例

输入数据 1

 40 -2 -7  09  2 -6  2
-4  1 -4  1
-1  8  0 -2

输出数据 1

15

来源

一本通在线评测

解题思路,无代码

核心思路

将二维矩阵的最大子矩阵问题转化为一维数组的最大子数组问题(Kadane算法)。

关键步骤
  1. 1.

    ​预处理列和​

    • 用 t数组记录从第 i行到第 j行的列累加和

  2. 2.

    ​Kadane算法​

    • cm记录当前子数组最大和

    • gm记录全局最大和

    • 递推公式:cm = max(t[k], cm + t[k])

    • 更新公式:gm = max(gm, cm)

  3. 3.

    ​矩阵遍历​

    • 外层循环:上边界 i(0 ≤ i < n)

    • 内层循环:下边界 j(i ≤ j < n)

    • 每次更新 t数组后调用 Kadane 算法

复杂度分析
  • 时间:O(n³)(双重行循环×单列遍历)

  • 空间:O(n)(存储列和)

边界处理
  • 矩阵全负时取最大单元素

  • 1×1矩阵直接返回

注:实际实现时需要处理输入输出格式,但思路本身不依赖具体语言实现。

#include<bits/stdc++.h>
using namespace std;
int kd(vector<int>&t)
{int cm=t[0],gm=t[0];for (int i=1; i<t.size(); i++){cm=max(t[i],cm+t[i]);gm=max(gm,cm);}return gm;
}int solve(vector<vector<int> >&mat)
{int n=mat.size();int gm=INT_MIN;for(int i=0; i<n; i++){vector<int>t(n,0);for(int j=i; j<n; j++){for(int k=0; k<n; k++){t[k]+=mat[j][k];}gm=max(gm,kd(t));}}return gm;
}
int main()
{int n;cin>>n;vector<vector<int> >mat(n,vector<int>(n));for(int i=0; i<n; i++){for(int j=0; j<n; j++){cin>>mat[i][j];}}cout<<solve(mat);return 0;
}

此代码仅供参考,请勿纯抄

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/93286.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/93286.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年大模型安全岗的面试汇总(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 1. Transformer核心机制及其对LLM突破的基石作用 2. LLM能力边界评估框架设计 3. 模型层级安全风险分析 …

《关于省级政务云服务费支出预算标准的规定》豫财预〔2024〕106号解读

《关于省级政务云服务费支出预算标准的规定》豫财预〔2024〕106号文件由河南省财政厅编制经省政府同意后于2024年12月3日印发执行&#xff0c;规定作为省级政务云服务费支出预算编制和审核的依据&#xff0c;旨在加强省级部门预算管理&#xff0c;规范政务云服务费支出预算编制…

使用HalconDotNet实现异步多相机采集与实时处理

文章目录 一、核心功能与原理 功能目标: 工作原理: 关键机制: 二、完整C#实现代码 三、关键实现解析 1. 零拷贝图像传输 2. 动态帧率控制 3. HALCON并行优化 4. 异常隔离机制 四、高级优化策略 1. 硬件加速配置 2. 内存池管理 3. 实时性保障 一、核心功能与原理 功能目标:…

《疯狂Java讲义(第3版)》学习笔记ch4

ch4流程控制与数组1.switch语句后的expression表达式的数据类型只能是byte、short、char、int四种证书类型。2.建议不要在循环体内修改循环变量&#xff08;也叫循环计数器&#xff09;的值&#xff0c;否则会增加程序出错的可能性。3.定义数组推荐语法格式&#xff1a;type[] …

COLMAP进行密集重建,三维重建的步骤

密集重建是在稀疏重建的基础上进行的 稀疏重建见&#xff1a;用 COLMAP GUI 在 Windows 下一步步完成 相机位姿估计&#xff08;SfM&#xff09; 和 稀疏点云重建的详细步骤&#xff1a;_colmap database导入图片位姿-CSDN博客 完成稀疏重建后直接进入以下步骤进行密集重建&am…

基于飞算JavaAI实现Reactor模式服务器的深度实践

一、飞算JavaAI技术概述 1.1 飞算JavaAI平台简介飞算JavaAI是飞算科技推出的智能化Java开发平台&#xff0c;通过AI技术赋能传统软件开发流程&#xff0c;为开发者提供从需求分析到代码实现的全流程智能化解决方案。该平台深度融合了人工智能技术与软件开发实践&#xff0c;具备…

量子人工智能

量子人工智能&#xff08;QAI&#xff09;是量子计算与人工智能的强大融合。这一领域旨在将量子系统独特的计算能力与人工智能的模式识别和学习能力相结合&#xff0c;以更快、更高效地解决问题。 量子人工智能与常规人工智能的区别是什么&#xff1f;常规人工智能在经典计算机…

算法题Day1

1. 练习1&#xff1a;Hello,World!解题步骤:using namespace std; int main() {cout<<"Hello,World!"<<endl;return 0; }2. 练习2&#xff1a;打印飞机解题步骤:#include <iostream> using namespace std; int main() {cout << " …

Cypher注入详解:原理、类型与测试方法

Cypher&#xff0c;全称为 (Open) Cypher Query Language&#xff0c;是一种专为图数据库设计的声明式查询语言。它以直观的模式匹配方式&#xff0c;帮助开发者和数据分析师从复杂的图结构数据中检索、创建和修改信息。如果说 SQL 是关系型数据库的语言&#xff0c;那么 Cyphe…

PG靶机 - Pelican

一、 初步侦察与服务探测 1.1 端口扫描与服务识别 首先&#xff0c;对目标主机 192.168.163.98 进行全面的端口扫描&#xff0c;以识别所有开放的服务。 sudo nmap 192.168.163.98 -p- --min-rate5000 -A图 1: Nmap 扫描结果&#xff0c;显示多个开放端口 扫描结果表明&#xf…

【1】Transformers快速入门:自然语言处理(NLP)是啥?

第一章&#xff1a;自然语言处理&#xff08;NLP&#xff09;是啥&#xff1f;一句话解释&#xff1a; NLP 教电脑听懂人话、说人话的技术 &#xff08;比如让手机听懂你说话、让翻译软件变聪明&#xff09;NLP发展史&#xff1a;电脑学人话的 “翻车史” 第一阶段&#xff08…

微软发布五大AI Agent设计模式 推动企业自动化革新

今日&#xff0c;微软在官网正式公布了企业级AI智能体&#xff08;Agent&#xff09;的五大核心设计模式&#xff0c;旨在通过模块化架构与自适应能力&#xff0c;帮助企业构建具备推理、协作与自主进化能力的"数字员工团队"。这一技术框架突破传统RPA&#xff08;机…

如何根据本地是有GPU安装对应CUDA版本的PyTorch

要在本地安装与您的NVIDIA GPU匹配的CUDA版本PyTorch&#xff0c;请按以下步骤操作&#xff1a; 步骤1&#xff1a;确定GPU型号和驱动信息 1.按 Win X选择 ​设备管理器​2.展开 ​显示适配器​ → 记录您的NVIDIA显卡型号&#xff08;如RTX 3060&#xff09;3.打开命令提示…

在FP32输入上计算前向传播需要多长时间?FP16模型的实例与之前的模型相比,它快了多少?

下面的 MixedModel 类使用作为参数提供的数据类型创建了一个非常简单的两层模型: class MixedModel(nn.Module): def init (self, dtype): super(). init

嵌入式硬件中MOS管图形详解

第一:MOS管电子元器件分析 MOS管全称叫金属氧化物半导体场效应晶体管,是一种压控器件。 MOS管属于场效应晶体管。 1、进入饱和区,若想加大电流该怎么做? 答:增加栅极电压,以扩大沟道宽度,此时到沟道再次被夹断所通过的电流也会增大。 2、MOS管的特性 答:(1)MOS管…

介绍java中atomic及相关类

文章目录一、Atomic 类的核心原理二、常见 Atomic 类及用法1. 基本类型原子类&#xff08;1&#xff09;AtomicInteger&#xff08;原子更新 int&#xff09;&#xff08;2&#xff09;AtomicLong&#xff08;原子更新 long&#xff09;&#xff08;3&#xff09;AtomicBoolean…

消费级显卡分布式智能体协同:构建高性价比医疗AI互动智能体的理论与实践路径

摘要: 本文系统探讨了基于消费级显卡集群(NVIDIA 30/40系列)的分布式小模型(1.5B-7B)协同机制,构建医疗互动智能网的理论基础与实践路径。文章从医疗AI的特殊性出发,提出“异构智能体协同计算”范式,通过模型分片、动态任务调度、联邦学习等核心技术,解决医疗场景中数…

C++进阶:特殊类

目录1. 不能被拷贝的类2. 只能在堆上创建的类3. 只能在栈上创建的类4. 不能被继承的类5. 类的设计模式&#xff08;单例模式&#xff09;5.1 饿汉模式设计5.2 懒汉模式设计特殊类的概念&#xff1a; 特殊类是一些具有特殊行为、用途&#xff0c;用特殊方法设计而出的类。1. 不…

【论文阅读】基于卷积神经网络和预提取特征的肌电信号分类

Myoelectric Signal Classification Using Convolutional Neural Networks with Pre-Extracted Features 原文&#xff1a;DOI: 10.1109/ICICS55353.2022.9811218 2022 翻译&#xff1a;靠岸学术 目录 摘要 1引言 2背景 A. 卷积神经网络 B. 特征工程 3材料与方法 A. CN…

珠海社保缴费记录如何打印

珠海社保掌上办&#xff08;微信小程序&#xff09; 进入“珠海社保掌上办”—“资料打印”— 选择养老工伤失业个人缴费证明&#xff0c;可选择 全部缴费记录打印或自选时段打印&#xff1a; 长按图片保存后打印。