[ZJOI2007] 仓库建设

前言

这些题全部口胡, 到李超线段树了再打代码

好累啊, 昨晚上不该太晚睡的, 中午他们期末也没睡, 精神萎靡

思路

先简化一下题意

对于 n 个点, 第 i 个点所在的位置为 xi , 其有 pi 个物品, 在 i 点建立仓库的费用为 ci , 求建造仓库的点集 S , 使得 cost=pScp+pkSi=pk1+1pk1pi(xixpk) 最小

容易发现, 问题可以进一步简化成

对于 n 个点, 第 i 个点所在的位置为 xi , 其有 pi 个物品, 在 i 点建立仓库的费用为 ci , 将 n 个点划分成任意长度的段 [L,R] , 一个段的花费为 cR+i=LRpi(xRxi)

容易发现贡献柿子可以进一步优化成

cR+i=LRpi(xRxi)=cR+i=LRxRpixipi

写成转移, 套路的令 fi 表示考虑到前 i 个点的最优花费, 记 wi 表示 xipi

fi=minj=0i1fj+ci+xi(prepiprepj)(prewiprewj)=xiprepiprewi+minj=0i1fjxiprepj+prewj

容易搞成斜率优化的形式, 简单的做即可

特别的, 有后缀 pi=0 , 贪心的取 fimin 即可

posted @   Yorg  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
more_horiz
keyboard_arrow_up light_mode palette
选择主题
点击右上角即可分享
微信分享提示