做题笔记#3

news/2025/3/28 2:30:45/文章来源:https://www.cnblogs.com/water-flower/p/18792124

[P2900 USACO08MAR] Land Acquisition G - 洛谷 (luogu.com.cn).

启示:支配性质。dp 编号可以不连续的解决方案。

题目描述

Farmer John 准备扩大他的农场,眼前他正在考虑购买 \(N\) 块长方形的土地。

如果 FJ 单买一块土地,价格就是土地的面积。但他可以选择并购一组土地,并购的价格为这些土地中最大的长乘以最大的宽。比如 FJ 并购一块 \(3 \times 5\) 和一块 \(5 \times 3\) 的土地,他只需要支付 \(5 \times 5=25\) 元, 比单买合算。

FJ 希望买下所有的土地。他发现,将这些土地分成不同的小组来并购可以节省经费。 给定每份土地的尺寸,请你帮助他计算购买所有土地所需的最小费用。

解法

思考1:这个题没有要求必须是编号连续的土地才能合并,说明不能直接 dp,但是如果是枚举子集,也就是用状压的话,复杂度明显炸缸。没想到其他不从下标设dp状态的方法。也许是有什么性质,导致可以一个一个地考虑土地。可能要排序。可能是贪心。尝试按照某一维排序,例如宽度。

【没前途的想法,但有启示】按照宽度排序。发现 i 以前的数的宽度就不会造成贡献了。这时候把 dp 第二维设为 j ,表示长度小于 j 的矩形统统要合并。所以 dpij 等于 i * j 加上[i - 1 之前不选小于 j 的土地的答案], 开始的时候以为 dp 方程是 \(dp_{i,j}=i*j+dp_{i-1,n}-dp_{i-1,j}\),然后发现 \(dp_{i-1,j}=(i-1)*j+dp_{i-2,n}-dp_{i-2,j}\). 于是把 \(dp_{i-1,j}\) 换掉,然后一直换,最后就只和之前 dp 的第 n 项和 dp1的每一项有关了。于是就对了。但是 \(dp_{i-1,n}-dp_{i-1,j}\) 根本不是[i - 1 之前不选小于 j 的土地的答案],而且那些 j 小于宽的项没有实际含义,不太清楚行不行。所以要换一种写法。

思考2:发现如果一个土地长和宽都小于某一个土地,那这个矩形一定没用,就是被大矩形支配了。所以先按宽度排序,把被支配的矩形跳过,那么这写矩形的长度一定是递减的!所以第二维就不用设出来。dp 方程也很好写:\(dp_i = \max{dp_j + w_i*l_j}\) 这是一个斜率优化的标准式子。甚至单调队列就可以维护了。用斜率优化的套路即可。

\(y = kx + b\), \(b = y - kx\)。 把\((-l_j,dp_j)\) 当做平面上的点 \(w_i\) 当成斜率,w 单增。

image-20250325190206751

搞出来大概就是这么一张图。

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

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

相关文章

YashanDB双引号

双引号是对标识符、密码定义和使用的扩展。使用双引号时,标识符、密码定义将支持特殊字符、数字,并且区分字母大小写。 双引号的使用位置(是否可出现在SELECT,FROM和WHERE后)和使用场景规则,以及双引号内字符串的长度限制,由双引号限定的标识符和密码本身决定,与是否加…

YashanDB故障状态

YashanDB检测到异常故障时,防止扩散影响,会将数据库的状态置为ABNORMAL,数据库处于故障只读状态,可以查询,不能执行写的业务。 当数据库为ABNORMAL状态时,可以查看V$DIAG_INCIDENT视图或告警日志明确故障原因。 --故障发生时,数据库状态为ABNORMAL SELECT STATUS FROM V…

YashanDB故障诊断架构

故障诊断架构由多个组件构成,包括自动诊断存储库、运行日志、告警日志等。其中运行日志、告警日志参考日志管理中说明。#自动诊断存储库自动诊断存储库是基于文件的存储库,用于存储数据库的诊断数据。它的目录结构如下(默认放在YASDB_DATA目录下,可设置参数进行配置):其中…

安利一个求职刷题小妙招、变身 offer 收割机 | 《趣玩》第 2 期

通义灵码目前支持的模型已经全面升级,包括 qwen 2.5、qwen 2.5-max,以及通过强化学习优化的增强版推理模型 qwq-plus。作者:王二 在AI技术狂飙突进的今天,程序员如何借力 AI 突破职业瓶颈?阿里云推出的通义灵码插件给出了答案!这款智能编码助手近期完成升级,支持多个业内…

Android开发--Lesson04--对象传递以及文件存储

一.对象传递 使用Intent传递对象的时候需要注意到,被传递的对象必须是实现了Serialzable接口的对象,即被传递的对象必须要是可序列化的public class Student implements Serializable {private String id;private String name;public void setId(String id) {this.id = id;}p…

Ollama使用GPU运行

系统:Win10 GPU :NVIDIA GeForce RTX 2070 with Max-Q Design 禁用GPU 在环境变量中添加 CUDA_VISIBLE_DEVICES 并设为空值。 使用 ollama ps 命令可以看到全部用的CPUCUDA_VISIBLE_DEVICES 是一个环境变量,主要用于控制 NVIDIA CUDA 程序(如基于 CUDA 的应用程序或框架,例…

No.69 Vue---实践--我的网站

一、避坑指南 1.关于路径问题 也不要使用绝对路径 <template><div class="home"><!-- 开始部分 --><div class="signature"><div class="signature-text"><h4 id="hometitle1">在地图上绘制每一次…

Notepad--的安装与使用

Notepad--的安装与使用Notepad--是使用C++编写的轻量级文本编辑器,简称ndd,支持Window/Mac/Linux操作系统平台,还支持国产操作系统如统信Uos、麒麟kinly系统。本文只是概述Notepad--的功能,如果想了解全部的功能可参见官网的ndd说明书 下载与安装 下载地址: https://gitee.…

VirtualBox中的Kylin-Server-10-SP2迁移VMware后开无法进入系统和无网卡的问题记录

问题解决方案来源:https://www.cnblogs.com/flyxuxi/p/15009094.html使用VirtualBox安装Kylin-Server-10-SP2后将磁盘文件使用VMware打开出现无法进入系统和无网卡的问题记录VirtualBox 软件版本:7.1.6 存储 控制器: SATA SATA 端口 1: Kylin-Server-10-SP2-x86-Release-Buil…

地下市政基础设施管理平台:揭秘城市地下的“数字生命线”

2023年,住建部提出“到2025年底前实现综合管理信息平台全覆盖”的目标,标志着我国城市治理正式进入地下空间精细化时代。从道路塌陷到管网泄漏,从内涝预警到地铁安全,地下市政基础设施管理平台如何成为守护城市安全的“数字大脑”?本文带您一探究竟。 一、为何要建地下市政…

Frp内网穿透搭建教学

📌 FRP - Linux & Win 内网穿透教程 手搓难度 ⭐️⭐️🚀 适用于: 本地服务器、电脑、树莓派、香橙派内网穿透 🛠️ 工具:FRP(fast reverse proxy) 🖥️ 系统:Linux、Windows 📚架构:x86、amd、arm 📝Frp版本:v0.61.1 🎯教程日期:2025/2/12📖 目录…