博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法学习之路|poj1050(最大子矩阵和)
阅读量:7038 次
发布时间:2019-06-28

本文共 540 字,大约阅读时间需要 1 分钟。

题目大意:对于n*n的矩阵,求它的最大子矩阵和。

其实就是最大子串和的扩展版本,当然首先尝试用最大子串和的变体解决这道题。

首先考虑到求矩阵的每一个子矩阵和都可以首先对行或列累加,就把二维矩阵求和转化成一维数组求和。把这一点想办法转化到求最大子串和。

可以初始化时对输入矩阵进行处理,ai表示第i行前j个数字之和。

在计算所有子矩阵的和时,用i,j控制子矩阵的左右区间,用k遍历子矩阵每一行(也就是把子矩阵同行数字相加,成一列一维数组,对这个数组用求最大子串和的方法即可求出最大值)。而调整初始矩阵是为了避免重复累加数据,节省时间。

代码:

#include 
#define MAX 101int main(){ int n; int a[MAX][MAX]={0}; int colsum[MAX][MAX]={0}; int maxn=0,sum; scanf("%d",&n); for(int i=0;i
maxn) maxn=sum; } } printf("%d\n",maxn); return 0;}

转载地址:http://jnial.baihongyu.com/

你可能感兴趣的文章
nagios3.3 监控端安装记录
查看>>
linux下拆分文件split
查看>>
BoCloud博云获得CNCF Kubernetes服务提供商认证
查看>>
WebApp 页面自适应
查看>>
【转自中科蓝鲸】集群NAS与集群文件系统的区别
查看>>
tigase网络核心SockThread详解
查看>>
iotop 查看进程IO情况
查看>>
php获取网站域名 及 SERVER 相关变量
查看>>
如何搭建springboot + mybatis(一)
查看>>
sphinx学习(六)基本配置 common settings
查看>>
win7下安装hadoop2.2.0.涵盖64位
查看>>
【推荐】Keras教程:Python深度学习超级入门指南
查看>>
CentOS/RedHat/Debian/Ubuntu下添加开机启动项
查看>>
C3P0数据库连接池
查看>>
通过Java反射调用方法
查看>>
卷积神经网络在自然语言处理的应用
查看>>
数值类型与字节数组之间的相互转换
查看>>
uWSGI + Django @ Ubuntu
查看>>
iOS微信分享功能简单实现
查看>>
发往日本的电子邮件经常退信吗?
查看>>