最大加权矩形

news/2024/11/16 13:43:21/文章来源:https://www.cnblogs.com/phuzzz/p/18549297

最大加权矩形

题目描述

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

校长先给他们一个 \(n\times 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

样例输入 #1

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

样例输出 #1

15

提示

\(1 \leq n\le 120\)






解题

今天我怎么就写得这么顺利呢?੭ ˙ᗜ˙ ੭

本题计算矩阵和,仅需要先锚定矩形右下点坐标,再减去左边部分和上边部分,最后加上(左边和上边重合的)左上部分即可。

0 -2 -7 0
​ __9 __ 2 -6 2
-4 1 -4 1
__-1 __ 8 0 -2

为计算方便,可先计算前缀和(由题设矩阵 左上角 和 当前位置构成的矩阵和),如图。

0 -2 -9 -9
9 9 -4 -2
5 6 -11 -8
4 13 -4 -3

#include<stdio.h>//题设数组     , 前缀和数组
int a[130][130], b[130][130];
int n;int main()
{//输入scanf("%d", &n);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 = 1; k <= i; k++){sum += a[k][j];}b[i][j] = b[i][j - 1] + sum;}}//计算int ans = 0;for (int i = 1; i <= n; i++)//i和j表示矩形的右下角顶点坐标{for (int j = 1; j <= n; j++){for (int k = 1; k <= i; k++)//k表示矩形的左边界坐标{for (int l = 1; l <= j; l++)//l表示矩形的上边界坐标{//矩形和= 右下点和- 左下点和    - 右上点和    + 左上点和int sum = b[i][j] - b[k - 1][j] - b[i][l - 1] + b[k - 1][l - 1];//更新ans为最大ans = (ans > sum) ? ans : sum;}}}}printf("%d\n", ans);return 0;
}

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

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

相关文章

【ARM CoreLink 系列 1 -- SoC 架构 总线 互联(interconnect) 介绍】

概述 在 摩尔定律 的推动下,集成电路工艺取得了高速发展,单位面积上的晶体管数量不断增加。片上系统(System-on-Chip,SoC)具有集成度高、功耗低、成本低等优势,已经成为大规模集成电路系统设计的主流方向,解决了通信、图像、计算、消费电子等领域的众多挑战性的难题。随…

golang: 在线上用nginx部署应用

一,启动应用: 1,编译程序 $ go build 2,用nohup启动应用的二进制程序 $ nohup /data/goapp/industry/industry >> /data/logs/gologs/back.log 2>&1 & [1] 4896 3,检查应用是否启动: $ ss -lntp | grep 3000 LISTEN 0 4096 0.0.0.0:3000 …

go fiber:路由中间件

一,目录结构:二,代码 1,中间件代码 package middlewareimport ("fmt""github.com/gofiber/fiber/v2""industry/config" )// token校验 func CheckUser(c *fiber.Ctx) error {token:=c.Query("token")fmt.Println("token:"…

20222327 2024-2025-1 《网络与系统攻防技术》实验六实验报告

一、实验内容 学习掌握了Metasploit工具的使用,具体的操作总结来说就是Search-Use-Show-Set-Exploit/run 学习了利用相关漏洞进行模拟攻击的操作,对防范恶意攻击有了一些认识(安装杀软,不要点击陌生网站、文件链接等) 二、实验过程 1、前期渗透 ①主机发现(可用Aux中的ar…

快速量产低功耗 4G 定位方案?Air201 模组来搞定!

今天我们来了解的是Air201模组快速量产低功耗 4G 定位方案,希望大家有所收获。今天我们来了解的是Air201模组快速量产低功耗 4G 定位方案,希望大家有所收获。 寻寻觅觅低功耗4G定位方案? 一个Air201就够了! ——定位准、体积小、功耗低,助力行业客户快速量产! 01 Air201是…

如何挑选海外4G模组?这里有秘籍!

今天我会告诉大家如何挑选海外4G模组,我会把优势给贴出作为参考。去过国外的都知道国外4G网络各种状况实在让人无力吐槽,做海外设备的朋友,是时候了解一下Air780EEN/EEU/EEJ系列海外模组——集成vSIM功能,最大程度解决海外联网稳定性的问题。今天我会告诉大家如何挑选海外4…

无线基础配置

所需配置 AC1 [AC6605]vlan batch 10 20 100 [AC6605]interface GigabitEthernet 0/0/1 [AC6605-GigabitEthernet0/0/1]port link-type trunk[AC6605-GigabitEthernet0/0/1]port trunk allow-pass vlan 10 20 100 [AC6605]interface Vlanif 100 [AC6605-Vlanif100]ip address 1…

基于YOLO实现滑块验证码破解

申明:本案例中的思路和技术仅用于学习交流。请勿用于非法行为。 一、训练模型 详细训练步骤和导出模型参考 滑块验证码识别模型训练 二、模型试用 通过YoloDotNet运行模型,计算出滑块缺口位置后用RESTful格式的接口返回坐标给其它应用调用。YoloDotNet案例参考 物体检测框架Y…

本地oracle数据库实例启动报错 TNS-12545 TNS-12560 TNS-00515

oracle 实例启动报错 TNS-12545 TNS-12560 TNS-00515 具体提示如下: 监听该对象时出错: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=host.docker.internal)(PORT=1521))) TNS-12545: 因目标主机或对象不存在, 连接失败 TNS-12560: TNS: 协议适配器错误 TNS-00515: 因目标主机…

jenkinsfile

k8s集群中用的jenkinsfile部署 java后台项目# x项目 test-java-eladmin-ci// harbor镜像仓库地址和密码信息 def registry = "harbor.solomon.com" // jenkins中定义的连接harbor的用户名密码凭据 def registry_se = "d2318c77-8a32-4618-bced-d6cabb0454b4&quo…

[网鼎杯 2018]Fakebook 1

[网鼎杯 2018]Fakebook 1 打开实例发现为博客列表,有登录跳转和类似注册或者添加博客的join跳转查看源码无果 打开登陆页,尝试万能密码没有用,尝试从join入手,用admin去随便join一个显示博客不存在 期间尝试多种sql注入方法均没有效果,转去其他方向 尝试dirsearch目录爆破…

【Adobe Premiere pro 2025下载与安装教程】

1、安装包「Adobe Premiere Pro 2025」: 链接:https://pan.quark.cn/s/e93beb96accb 提取码:CGY2 2、安装教程 1) 下载软件安装包,打开安装目录,双击Setup.exe安装,弹出安装对话框2) 选择安装目录,尽量不要选C盘,点击继续3) 等待安装过程完成,点…