首页 > 其他分享 >P2900 [USACO08MAR] Land Acquisition G

P2900 [USACO08MAR] Land Acquisition G

时间:2023-07-20 23:45:04浏览次数:43  
标签:Land 土地 斜率 P2900 USACO08MAR FJ Acquisition

P2900 [USACO08MAR] Land Acquisition G

题意

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

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

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

题解

回顾一下斜优板子。
首先做一个单调栈,得到一个宽递减,长递增的序列,这样就转化为了平常 \(dp\) 的样子,设 \(f_i\) 表示前 \(i\) 个矩形的最小代价。

\[f_i = \min f_j+w_ih_{j+1} \]

注意到可以斜优,修改为这样。

\[f_j = -w_ih_{j+1}+f_i \]

我们将 \((-h_{j+1},f_j)\) 看做上述一次函数中的一个点,我们要找一个点使得截距最小。
维护一个下凸包,其中两点之间斜率单调递增,令截距最小的点是和下一个点之间的斜率与给定斜率最接近的点。
如何维护下凸包?用单调栈维护,弹到上一条边的斜率小于当前斜率为止。
找到最接近的斜率可以用二分,但是注意到要查的斜率也递增,所以使用双端队列,队首斜率小于给定斜率就弹出就行了。
code

标签:Land,土地,斜率,P2900,USACO08MAR,FJ,Acquisition
From: https://www.cnblogs.com/snow-panther/p/17570008.html

相关文章

  • CF755G PolandBall and Many Other Balls
    列出转移方程就是傻鸟题了,具体地,令\(f_{i,j}\)为前\(i\)球取出\(j\)组的方案数,有:\[f_{i,j}=f_{i-1,j-1}+f_{i-1,j}+f_{i-2,j-1}\]列出\(f_{i}\)的GF\(F_i(x)\):\[F_i(x)=F_{i-1}(1+x)+F_{i-2}\cdotx\]这是递推,把矩阵元素改成多项式,矩阵快速幂即可。\(O(k\logk\log......
  • Moonlander:利用AI技术开发3D游戏的一人创业公司
    最近,一个新公布的AIGC工具火了:7月1日,专注于利用AI技术开发3D游戏的创业公司Moonlander,发布了基于AI技术的3D游戏研发平台MoonlanderAI。而该平台最大的特点,就是可以用一句话生成3D游戏,是个名副其实的"文生游"平台。按照Moonlander的说法,哪怕你不会任何美......
  • Goland 最新激活码(2023/7/17)
    33MEHOB8W0-eyJsaWNlbnNlSWQiOiIzM01FSE9COFcwIiwibGljZW5zZWVOYW1lIjoiUG9saXRla25payBNZXJsaW1hdSBNZWxha2EiLCJhc3NpZ25lZU5hbWUiOiJtYWdnaWUgc2VyIiwiYXNzaWduZWVFbWFpbCI6Im1hZ2dpZXNlckB5ZWFoLm5ldCIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IkZvciBlZHVjYXRpb25hbCB1c2Ugb25seSIs......
  • ENVI大气校正方法反演Landsat 7地表温度
    本文介绍基于ENVI软件,实现对Landsat7遥感影像加以大气校正方法的地表温度反演操作。目录1图像前期处理与本文理论部分2实际操作2.1植被覆盖度计算2.2地表比辐射率计算2.3相同温度下黑体辐射亮度值计算2.4地表真实温度计算2.5图像导出3专题地图制作4不同地物地表温度对......
  • GoLand中使用PlantUML生成Go UML图,使用go-callvis生成Go 调用关系图
    1.在golandIDE中安装plantuml插件2.安装go-package-plantuml工具goget--insecuregitee.com/jscode/go-package-plantuml.git修改go-package-plantuml代码支持outputfileifopts.OutputFile==""{result.OutputToFile("/tmp/uml.txt")}else{result.OutputToFile(opts.Ou......
  • UE4地形系统(Landscape)
    地形(Landscape) 系统使您能够为您的世界场景创建地形-山脉、山谷、起伏或倾斜的地面,甚至洞穴的开口(Sculpt 模式中选择 Visibility 工具)。并通过使用一系列工具轻松修改地形的形状和外观。 概述 一个关卡中可以有多个地形Actor对象(ALandscape)。一个场景世界中只有一......
  • goland+dlv远程调试kubelet
    Goland配置cd到main函数所在的go文件目录执行下面命令等待2分钟左右,直到出现APIserverlisteningat:[::]:8033/root/Downloads/dlvdebug--headless--listen=:8033--api-version=2----bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf--kubeconfig=/etc......
  • goland打开配置golang工程
    有一个golang工程,没有go.mod,用goland打开,配置编译,会提示没有go.mod,但是增加了go.mod,又提示工程目录下引用的包找不到。去掉go.mod先把go.mod关闭把工程目录加入GOPATH......
  • QOJ 6504. CCPC Final 2022 D Flower's Land 2题解
    QOJ6504.CCPCFinal2022DFlower'sLand2题解题意简述给你一个只含\(0,1,2\)的序列,相邻两个相同的数字可以直接消掉。询问包含两种区间所有数\(+1\)并对\(3\)取模。求一段区间能否用上述消除方式消完。样例输入8901211012245236168168236......
  • CpG islands (CGI), CpG Shores, CpG Shelves, Open sea in DNA methylation
    https://life-epigenetics-methylprep.readthedocs-hosted.com/en/latest/docs/introduction/introduction.htmlCpGregions以外的区域称为opensea......