最大加权矩形rqnoj106

题目描述

给定一个正整数n( n<=100),然后输入一个N*N矩阵。求矩阵中最大加权矩形,即矩阵的每一个元素都有一权值,权值定义在整数集上。从中找一矩形,矩形大小无限制,是其中包含的所有元素的和最大 。矩阵的每个元素属于[-127,127]
例:
0 –2 –7 0 在左下角: 9 2
9 2 –6 2 -4 1
-4 1 –4 1 -1 8
-1 8 0 –2 和为15

输入格式

第一行:n,接下来是n行n列的矩阵。

输出格式

最大矩形(子矩阵)的和。

样例输入

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

样例输出

15

这一题可以说是前面  【贪心】旅游路线   那一题的升级版,这个是取一个矩形

同样,需要把所选的矩形压缩到一行,然后样最大子区间和来解决

建议先看看旅游路线那一题http://www.cnblogs.com/oijzh/archive/2012/10/19/2731052.html

我们需要一个sum[i][j]来存储第j列的前i行之和,比如样例中sum[3][2]=-2+2+1=1

分别枚举要取矩形的上边行数 i 和下边行数 j ,然后用sum[j][k]-sum[i-1][k]就是压缩到一行的第k列的值,然后就可以用递推来求出最大子区间和:用f[k]表示以 k 结尾的最大子区间和,记cc=sum[j][k]-sum[i-1][k],那么f[k]=max(f[i-1]+cc,cc);并同时找最大值

C++ Code

/*
C++ Code
http://oijzh.cnblogs.com
*/
#include<cstdio>
#include<algorithm>
using namespace std;
#define MAXN 110
#define INF 0x7fffffffint n,a[MAXN][MAXN],sum[MAXN][MAXN];//sum[i][j]表示第j列前i行之和
int f[MAXN];int main()
{freopen("rqn106.in","r",stdin);freopen("rqn106.out","w",stdout);scanf("%d",&n);int i,j;for(i=1;i<=n;i++)for(j=1;j<=n;j++)scanf("%d",&a[i][j]);for(i=1;i<=n;i++)for(j=1;j<=n;j++)sum[i][j]=sum[i-1][j]+a[i][j];int k,maxx=-INF;for(i=1;i<=n;i++)for(j=i;j<=n;j++)for(k=1;k<=n;k++){int cc=sum[j][k]-sum[i-1][k];f[k]=max(f[k-1]+cc,cc);maxx>?=f[k];}printf("%d",maxx);return 0;
}

转载于:https://www.cnblogs.com/oijzh/archive/2012/10/19/2731678.html

【最大矩阵和】最大加权矩形 rqnoj106相关推荐

  1. 矩阵压缩降维动态规划递推【P1719 最大加权矩形】

    矩阵压缩&降维&动态规划&递推[P1719 最大加权矩形] 题目描述 为了更好的备战NOIP2013,电脑组的几个女孩子LYQ,ZSC,ZHQ认为,我们不光需要机房,我们还需要 ...

  2. 前缀和与差分——最大加权矩形

    前缀和与差分--最大加权矩形 题目描述 为了更好的备战 NOIP2013,电脑组的几个女孩子 LYQ,ZSC,ZHQ 认为,我们不光需要机房,我们还需要运动,于是就决定找校长申请一块电脑组的课余运动场 ...

  3. 洛谷 P1719 最大加权矩形

    P1719 最大加权矩形 题目描述 为了更好的备战NOIP2013,电脑组的几个女孩子LYQ,ZSC,ZHQ认为,我们不光需要机房,我们还需要运动,于是就决定找校长申请一块电脑组的课余运动场地,听说她 ...

  4. 洛谷 P1719 最大加权矩形 (前缀和,动态规划)

    题目描述 为了更好的备战NOIP2013,电脑组的几个女孩子LYQ,ZSC,ZHQ认为,我们不光需要机房,我们还需要运动,于是就决定找校长申请一块电脑组的课余运动场地,听说她们都是电脑组的高手,校长没 ...

  5. P1719 最大加权矩形(二维前缀和Java)

    P1719 最大加权矩形 题目链接:https://www.luogu.com.cn/problem/P1719 题目描述 为了更好的备战NOIP2013,电脑组的几个女孩子LYQ,ZSC,ZHQ认为 ...

  6. 最大加权矩形 压缩+前缀和+dp

    题目描述 为了更好的备战NOIP2013,电脑组的几个女孩子LYQ,ZSC,ZHQ认为,我们不光需要机房,我们还需要运动,于是就决定找校长申请一块电脑组的课余运动场地,听说她们都是电脑组的高手,校长没 ...

  7. P1719 最大加权矩形(二维dp)

    P1719 最大加权矩形(二维dp) 原题戳这里 题目描述 为了更好的备战NOIP2013,电脑组的几个女孩子LYQ,ZSC,ZHQ认为,我们不光需要机房,我们还需要运动,于是就决定找校长申请一块电脑 ...

  8. P1719 最大加权矩形【前缀和】

    题目描述 为了更好的备战NOIP2013,电脑组的几个女孩子LYQ,ZSC,ZHQ认为,我们不光需要机房,我们还需要运动,于是就决定找校长申请一块电脑组的课余运动场地,听说她们都是电脑组的高手,校长没 ...

  9. 洛谷 P1719 最大加权矩形 动态规划

    题目描述 为了更好的备战NOIP2013,电脑组的几个女孩子LYQ,ZSC,ZHQ认为,我们不光需要机房,我们还需要运动,于是就决定找校长申请一块电脑组的课余运动场地,听说她们都是电脑组的高手,校长没 ...

最新文章

  1. jsp与java_JSP与JavaBeans
  2. 计算机在线作业题,中医大计算机在线作业及答案-20210412090026.docx-原创力文档
  3. 使用PHP将HTTP标头设置为UTF-8
  4. synchronized()_这篇文章带你彻底理解synchronized关键字
  5. Exynos1080处理器性能与功耗究竟怎么样?
  6. 第一天开博,想和大家认识。
  7. 急需能临时发邮件的临时邮箱 临时邮箱怎么注册 邮箱163注册入口在哪
  8. ios免越狱脚本实现方案
  9. 调剂深圳大学计算机技术,深圳大学:2020年硕士研究生招生调剂办法公告
  10. python中ix用法_在python的pandas模块中,DataFrame对象,如何选择一行?索引、loc、iloc、ix的用法及区别...
  11. 一次 Young GC 的优化实践(FinalReference 相关)
  12. leetcode打家劫社简单实现--python
  13. 详细阅读Spark论文
  14. 华为云Stack智能进化,三大举措赋能政企深度用云
  15. HTML文字动画,缓慢浮入
  16. java发送outlook_在Outlook 2007中发送民意调查
  17. 最新C语言深入剖析班项目实战教程(国嵌 唐老师主讲)
  18. Android Studio 中文社区
  19. 用Visio绘制深度模型结构图的基本单元_斜立方体
  20. 全国计算机竞赛能保送清华北大吗,NOIP考试是什么?能保送清华北大是真的吗?...

热门文章

  1. python爬虫获取京东手机图片
  2. java 两位小数_java保留两位小数及多位小数的方法 | 夕辞
  3. 预设(Presets) · Babel 中文文档
  4. 分享Python开发的13个小游戏(附源码)
  5. Android引导蒙层,安卓新手引导图,引导图层,支持椭圆,圆形,矩形多种形状,一行代码快速搞定
  6. gitee错误failed to push some refs to
  7. you-get使用命令
  8. python 的scrapy框架
  9. shell字段拼接日期_通过shell脚本获取日期,并赋给变量(转)
  10. ACCESS高级注入教程