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

题目描述

为了更好的备战NOIP2013,电脑组的几个女孩子LYQ,ZSC,ZHQ认为,我们不光需要机房,我们还需要运动,于是就决定找校长申请一块电脑组的课余运动场地,听说她们都是电脑组的高手,校长没有马上答应他们,而是先给她们出了一道数学题,并且告诉她们:你们能获得的运动场地的面积就是你们能找到的这个最大的数字。

校长先给他们一个N*N矩阵。要求矩阵中最大加权矩形,即矩阵的每一个元素都有一权值,权值定义在整数集上。从中找一矩形,矩形大小无限制,是其中包含的所有元素的和最大 。矩阵的每个元素属于[-127,127],例如

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

在左下角:

9  2
-4  1
-1  8

和为15。

几个女孩子有点犯难了,于是就找到了电脑组精打细算的HZH,TZY小朋友帮忙计算,但是遗憾的是他们的答案都不一样,涉及土地的事情我们可不能含糊,你能帮忙计算出校长所给的矩形中加权和最大的矩形吗?

输入格式

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

输出格式

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

输入输出样例

输入 #1

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

输出 #1

15

说明/提示

n<=120

代码:

package com.sdutcm.tree.fourteen;import java.util.Scanner;public class P1719 {static Scanner sc =new Scanner(System.in);static int n=sc.nextInt();public static void main(String[] args) {int [][] arr= new int[n][n];for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {arr[i][j]=sc.nextInt();}}int max=0;for (int i = 0; i < n; i++) {//for (int j = i+1; j <n; j++) {int f[]=new int[n];for (int k = i; k <=j; k++) {for (int k2 = 0; k2 < n; k2++) {f[k2]+=arr[k][k2];}}max=Math.max(max, get(f));}}System.out.println(max);}
//get函数是得到最大子段和private static int get(int[] f) {int now=0;int max=f[0];for (int i = 0; i < n; i++) {if(now>=0){now+=f[i];}else{now=f[i];}    max=Math.max(max, now);}return max;}}  

详细他人的讲解:来源:https://www.luogu.com.cn/problem/solution/P1719

求最大字段和

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

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

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

  2. 洛谷 P1719 最大加权矩形

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

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

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

  4. 洛谷[P1719 最大加权矩形] {前缀和与差分} 奋斗的珂珂~

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

  5. P1541 乌龟棋 题解(洛谷,动态规划递推)

    题目:P1541 乌龟棋 感谢大神的题解(他的写的特别好) 写一下我对他的代码的理解吧(哎,蒟蒻就这能这样...) 代码: #include<bits/stdc++.h> #define ...

  6. P1759 通天之潜水(不详细,勿看)(动态规划递推,组合背包,洛谷)

    题目链接:点击进入 题目分析: 简单的组合背包模板题,但是递推的同时要刷新这种情况使用了哪些物品 ac代码: #include<bits/stdc++.h> using namespace ...

  7. 数塔(hdoj 2084,动态规划递推)

    在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少? 已经告诉你了,这是个DP的题目 ...

  8. 338 比特位计数(动态规划-递推)

    1. 问题描述: 给定一个非负整数 num.对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回. 示例 1: 输入: 2 输出: [0,1,1] ...

  9. 一只小蜜蜂(hdoj 2044,动态规划递推)

    Problem Description 有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行.请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数. 其中,蜂房的结构如下所示. Input 输入数据的第一 ...

最新文章

  1. 关系数据理论中的范式
  2. java继承的知识点_Java知识点梳理——继承
  3. ExtJS 的工具条及菜单
  4. HDU 2899 三分
  5. Android广播的学习和使用
  6. Microsoft Project 变更项目日历的注意事项
  7. 苹果WWDC 2019看点回顾:iOS黑化、iPad系统独立、王者Mac Pro发布...
  8. 嵌入式工作笔记0007---对讲机嵌入式开发记录---认识对讲机的功能--随时更新
  9. NRF24L01发送接收调试记录
  10. 智能语音识别app下载-智能语音识别app安卓版下载v2.2 - 非凡软件站
  11. pixmap和label设置图片自适应大小
  12. HTML前端数据管理,前端数据管理
  13. 差分密码分析读书报告
  14. 【人脸关键点】——PFLD人脸关键点检测解读
  15. 360实景地图插件 html,谷歌360全景地图让你足不出户欣赏美景
  16. Mac电脑网速慢的问题之一(硬件:MTU)
  17. E2. Divisible Numbers (hard version)
  18. pdf怎么合并在一起?
  19. Apifox 学习笔记 - 前置操作
  20. windows创建计划任务

热门文章

  1. 西门子S7-1200和人机界面测试
  2. 移动支付(mobile money)系列 —— Apple Pay的原理
  3. 计算机一级云居寺,刁常宇-Zhejiang University Personal homepage
  4. python数据可视化(matplotlib,seaborn,plotly)
  5. 【今日CV 计算机视觉论文速览 第135期】Mon, 24 Jun 2019
  6. 高级前端成长训练营|和阿龙一起学前端曝光——走进前端开发世界
  7. 轻量迅捷时代,Vite 与Webpack 谁赢谁输
  8. 移动端音乐WebApp
  9. 在Windows上使用EDA软件——利用WSL安装IC618、SPECTRE181
  10. wshop微信商城数据库结构简要解析