POJ 1050 To the Max(动态规划)

2023-05-16

Given a two-dimensional array of positive and negative integers, a sub-rectangle is any contiguous sub-array of size 1*1 or greater located within the whole array. The sum of a rectangle is the sum of all the elements in that rectangle. In this problem the sub-rectangle with the largest sum is referred to as the maximal sub-rectangle.
As an example, the maximal sub-rectangle of the array:

0 -2 -7 0
9 2 -6 2
-4 1 -4 1
-1 8 0 -2
is in the lower left corner:

9 2
-4 1
-1 8
and has a sum of 15.

Input

The input consists of an N * N array of integers. The input begins with a single positive integer N on a line by itself, indicating the size of the square two-dimensional array. This is followed by N^2 integers separated by whitespace (spaces and newlines). These are the N^2 integers of the array, presented in row-major order. That is, all numbers in the first row, left to right, then all numbers in the second row, left to right, etc. N may be as large as 100. The numbers in the array will be in the range [-127,127].

Output

Output the sum of the maximal sub-rectangle.

Sample Input


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

8  0 -2  

Sample Output


15  

看网上题解才恍然大悟,根据最长递增子序列的思想, 将二维的数组看成为一维的形式进行求解。

设一个三维数组dp[i][j][k],i表示行,j表示起始列,k表示终止列。

则dp[i][j][k]=max(dp[i-1][j][k]+sum,sum).其中sum表示的是第i行从j到k的和。

代码如下:

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;
const int maxn=105;
int n;
int dp[maxn][maxn][maxn];
int a[maxn][maxn];
int ans=-0x3f3f3f3f;
int main()
{
    scanf("%d",&n);
    memset (dp,0,sizeof(dp));
    for (int i=1;i<=n;i++)
    {
        for (int j=1;j<=n;j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    for (int i=1;i<=n;i++)
    {
        for (int j=1;j<=n;j++)
        {
            int sum=0;
            for (int k=j;k<=n;k++)
            {
                sum+=a[i][k];
                dp[i][j][k]=max(dp[i-1][j][k]+sum,sum);
                ans=max(dp[i][j][k],ans);
            }
        }
    }
    printf("%d\n",ans);
    return 0;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

POJ 1050 To the Max(动态规划) 的相关文章

  • 项目管理工具:GitHub,GitLab,Azure DevOps,Gitea版本控制系统

    1 版本控制系统是什么 xff1f 版本控制系统是一种记录一个或若干文件内容变化 xff0c 方便查阅特定版本修订情况的系统 2 为什么要用版本控制系统 xff1f 工作上 xff0c 当你处理一个共享文件夹的时候 xff0c 必须告知办公
  • Linux Debian安装或管理多个Python版本

    在Debian安装或管理多个Python版本 2021 05 13 19 04 55 43 08 字数 xff1a 4772 标签 xff1a Linux Python Ubuntu 20 04的Python默认版本是3 8 xff0c 符
  • Fl Studio20切换中文教程汉化补丁包

    FL studio 简称FL xff0c 全称 Fruity Loops Studio xff0c 因此国人习惯叫它 34 水果 34 目前最新版本是FL studio20 xff0c 它让你的计算机就像是全功能的录音室 xff0c 大混音
  • Promox VE(PVE)重启后GUI不能登录

    ssh能连接 xff0c 但是gui打不开 因为集群节点不正确移除 xff0c 留下配置信息 xff0c 启动后 xff0c 一直找集群的其它机器 ssh远程指令 xff1a pvecm expected 1 上面的命令是告诉系统 xff0
  • 虚拟机已经显示了已连接的图标但不能上网的解决办法+虚拟机显示网络连接激活失败

    虚拟机已经显示了已连接的图标但不能上网的解决办法 43 虚拟机显示网络连接激活失败 问题叙述解决办法 问题叙述 解决办法 1 https blog csdn net big rotor article details 70163858 用w
  • 【递归】CodeForces - 768B

    题意 xff1a 给定一个数N xff0c 对大于1 的数在原来的位置拆分为N 2 xff0c N 2 xff0c N 2 三个数 对拆分出的大于1 的数同样进行拆分 xff0c 直至所有的数均为0 或1 对拆分后的0 1 序列 xff0c
  • 1025. 除数博弈

    2020 7 24 LeetCode 题目描述 爱丽丝和鲍勃一起玩游戏 xff0c 他们轮流行动 爱丽丝先手开局 最初 xff0c 黑板上有一个数字 N 在每个玩家的回合 xff0c 玩家需要执行以下操作 xff1a 选出任一 x xff0
  • VMware安装Arch Linux

    目录 一 新建虚拟机二 安装系统1 下载镜像2 将镜像文件导入空白虚拟机中3 查看启动模式4 查看网络5 查看系统时间6 分区6 1 查看磁盘信息6 2 进入图形化分区工具进行分区6 3 格式化分区6 4 挂载分区 7 修改镜像源8 安装l
  • HDU 1880 魔咒词典(Hash+二分)

    题目链接 哈利波特在魔法学校的必修课之一就是学习魔咒 据说魔法世界有100000种不同的魔咒 xff0c 哈利很难全部记住 xff0c 但是为了对抗强敌 xff0c 他必须在危急时刻能够调用任何一个需要的魔咒 xff0c 所以他需要你的帮助
  • Python「pytesseract」:中文识别模块

    在处理 ttf 文件时 xff0c 遇到了识别图片中中文的情况 xff0c 常见的方式是调用百度的语言识别接口 xff0c 但是这里为了大批量的识别 xff0c 首先试了试 python 自带的语言识别模块 pytesseract xff0
  • 总结rce(远程代码执行各种sao姿势)绕过bypass

    空格绕过 xff1a 在bash下可以用 IFS IFS IFS 9 09 lt gt lt gt xff08 例如 cat etc passwd xff09 20 space 09 tab xff0c 这儿跟sql注入有点相似 xff0c
  • docker-compose教程(安装,使用, 快速入门)

    此文章为转载文章 xff0c 原文地址 xff1a https blog csdn net pushiqiang article details 78682323 目录 1 Compose介绍2 Compose和Docker兼容性3 安装d
  • Ubuntu查看和设置环境变量

    文章目录 1 查看环境变量2 设置方式2 1 把你的路径加入PATH2 2 命名一个新的环境变量 3 作用域3 1 用于当前终端3 2 用于当前用户3 3 用于所有用户 转载 1 查看环境变量 查看环境变量有三个命令 xff1a env x
  • CorelDRAW2022下载附带序列号安装教程

    CorelDRAW2022作为图形设计软件的代表 xff0c 以其杰出和革新的特性赢得了长期的声誉和用户的赞赏 xff0c 是一套屡获殊荣的图像编辑软件 CorelDRAW 2022包含程序 xff1a CorelDRAW 2022主程序矢
  • ASCII码、Unicode编码对照表 —— ASCII控制字符 Unicode编码 字符编码的前世此生

    ASCII控制字符 Unicode编码 ASCII xff08 American Standard Code for Information Interchange xff0c 美国信息互换标准代码 xff0c ASC xff09 是基于拉
  • RealSR真实场景超分

    一 Camera Lens Super Resolution 本文主要解决RealSR的数据问题 xff0c 通过控制镜头到物体的距离产生成对的真实数据 xff08 Real paired SR data xff09 xff08 1 xff
  • 5374. 长度为 n 的开心字符串中字典序第 k 小的字符串(回溯算法)

    5374 长度为 n 的开心字符串中字典序第 k 小的字符串 List lt String gt res 答案集合不能定义为StringBuilder类型 剩下的就是回溯算法 span class token keyword class s
  • 宝塔忘记端口,解决办法

    1 xff0c 登陆远程连接 xff0c 输入ll 2 输入cd后再ll 3 清下屏 xff0c 输入clear 4 xff0c 输入cd www server panel data 找到port pl 5 输入cat port pl查看端
  • 幽冥传奇

    JAVA环境添加 setx M JAVA HOME D YM cnmmm com bl20166 Java jdk1 8 0 144 setx M CLASSPATH JAVA HOME lib dt jar JAVA HOME lib t
  • TOR下载教程

    不想用自己浏览器ip访问可用以下设置 xff0c 当然有很多其他方法 1 xff0c 官网https www torproject org 2 xff0c 下载对应版本 3 xff0c 打开tor 洋葱浏览器 并选择config 4 lin

随机推荐

  • 几步搞懂cobalt strike启动

    很多人问Cobalt strike怎么启动 xff0c 总结几句 1 cmd管理员身份运2 切换到CS所在目录3 输入ipconf找到自己ip地址4 输入teamserver 自己ip 密码 回车即可5 打开start bat文件再点击确定
  • TOR下载和网桥配置教程

    不想用自己浏览器ip访问可用以下设置 xff0c 当然有很多其他方法 1 xff0c 官网https www torproject org 2 xff0c 下载对应版本安装即可 本节以windows为例 xff08 苹果 安卓手机都有对应a
  • XSS漏洞,通过XSS实现网页挂马

    今天讲下通过XSS实现网页挂马 xff0c 目的是了解安全方面知识 xff0c 提升生活网络中辨别度 原理 xff1a 实验分为两部分 xff1a 1 通过Kali linux xff0c 利用MS14 064漏洞 xff0c 制作一个木马
  • qt样式有时不生效问题分析

    qt 中的样式表非常方便 xff0c 可以自定义自己想要的控件 但是有时候会发现使用样式表时 xff0c 样式不会生效 接下来分析一下主要原因 xff1a 1 样表格式不正确 2 样式表的样式被子对象覆盖 xff0c 设置时注意作用对象 x
  • 逻辑回归案例

    应用案例 之前学习了逻辑回归 xff0c 我们现在来做一个案例 一个图片验证码识别的案例 xff1a 怎么从图片中准确的识别出正确的数字 我们分了三步 第一步 xff1a 先生成150验证码图片 xff0c 每个图片有5个数字 图片中有随机
  • CorelDRAW x4提示非法软件产品被禁用解决方法教程

    说起PS大部分人都有所耳闻 xff0c 甚至会一些简单的操作 但是CDR x4这名字相信有很多人就很陌生了 xff0c 所以在这里也很有必要先说一下CDR到底是个什么样的存在 CDR全名CorelDRAW xff0c 是加拿大Corel公司
  • Mybatis-Plus中分页插件PaginationInterceptor, MybatisPlusInterceptor在SpringBoot中的使用

    配置分页插件 span class token annotation punctuation 64 Configuration span span class token keyword public span span class tok
  • 矩阵连乘问题-构造最优解

    题目描述 使用动态规划算法求解矩阵连乘问题 输入 每组数据包括两行 xff0c 第一行为数组长度n xff0c 第二行为存储矩阵维数的一维数组 输出 矩阵连乘最优计算次序 样例输入 Copy 7 30 35 15 5 10 20 25 样例
  • 树莓派启动——安装+无显示器使用+自启动VNC

    目录 硬件准备软件准备写入系统启动树莓派换源VNC自启动 时隔一年多 xff0c 拿起树莓派却忘记如何使用了 本想用作自己搭建git服务器 xff0c 后续再完成了 在此记录一下使用流程 硬件准备 树莓派 3b 43 TF卡和读卡器 xff
  • Debain 10(Buster)换源

    Debain 10 Buster 换源的操作步骤 必要条件 xff1a 已经安装好的Debain 10 Buster 开始 Debain 10 Buster 换源的操作步骤步骤一 备份原始的源文件用户切换到root下 进行源文件备份 二 换
  • 使用nginx反向代理突然失灵

    之前使用nginx反向代理还好好的 xff0c 后来再启动项目时突然失灵 xff0c 浏览器显示如下 然后开始排查错误 xff0c 首先直接使用ip地址访问是正常的 xff0c 然后使用hosts中映射的域名访问是无效的 xff0c 这说明
  • win10 安装 Linux子系统(WSL)

    序 xff1a 前段时间字节不是发布了 modernJS 的开源项目吗 xff1f 大概看了一部分的内容 xff0c 这些的东西就不一一列出来了 xff0c 本来想尝一口的 xff0c 在环境准备的系统那里就先折了一下 xff08 目前支持
  • Java 集合

    ArrayList 默认长度为10 indexOf lastIndexOf 通过equals方法判断索引 span class token keyword public span span class token keyword int s
  • Java 多线程知识

    参考链接 xff1a https www cnblogs com kingsleylam p 6014441 html https blog csdn net ly0724ok article details 117030234 https
  • Java I/O

    参考链接 xff1a https blog csdn net m0 71563599 article details 125120982 https www cnblogs com shamo89 p 9860582 html https
  • 最小生成树 prim算法(附代码)

    prim算法是以一个根节点开始慢慢往下延伸 xff0c 不断寻找距生成树最短的距离的节点 xff0c 然后将该节点纳入生成树的集合中 xff0c 然后再将该节点影响的其他未纳入生成树节点的距离更新 xff08 缩小与生成树的距离 xff09
  • cdr x4检测显示软件产品已被禁用警告弹窗,如何解决教程分享

    偶尔翻开移动硬盘 xff0c 找到这货 xff0c CorelDraw X4简体中文正式版 网上现在比较难下载得到了 xff0c X4是我最常用的一个 现在把它分享出来 xff0c 有需要的可以去下载使用 orelDRAW X4打开显示被禁
  • 数据结构与算法题目集(中文) 6-1 单链表逆转 (20 分)

    本题要求实现一个函数 xff0c 将给定的单链表逆转 函数接口定义 xff1a List Reverse List L 其中List结构定义如下 xff1a typedef struct Node PtrToNode struct Node
  • HTML5 Table 布局实现 商品列表

    运行结果如上 下面说说设计过程 xff1a 一开始试探的做的时候 xff0c 是建立了一个table xff0c 这个table里面放一本图书的信息 然后建立了一个列 xff0c 然后建立了个td xff0c td里面放图片 xff0c t
  • POJ 1050 To the Max(动态规划)

    Given a two dimensional array of positive and negative integers a sub rectangle is any contiguous sub array of size 1 1