LGP8125 [BalticOI 2021] The short shank 学习笔记

LGP8125 [BalticOI 2021] The short shank 学习笔记

Luogu Link

题意简述

有一列 N 个元素,第 i 个元素初始值 ti,而后会被更新为 minj=lb=1rb=itj+(ij)。现在给你 D 个隔板,如果在第 i 个和第 i+1 个之间放置,则有效果:j>i,lbj=max(lbj,i+1)。问在合理安排隔板放置的情况下,[ti<T] 的最小值。

1D<N<2×106,1T,ti109

做法解析

首先我们发现,初始就有 tiT 的这部分贡献是救不回来的,我们称之为“特殊点”。我们只能争取初始 ti>T 的那些元素不被传染。

我们不妨来研究一下,在不设隔板的情况下传染的机制是怎么样的:直观感受上,这种每一时间右扩一格的东西很像一个一次函数——实际上也确实如此。以位置 p 为横轴,时间 t 为纵轴,我们发现:每个特殊点 i 的传染模式形成一条斜率为 1、定义域左边界为 i 的一次函数;最后每个点 j 实际被传染到的时间就是这一大堆函数在 j 处的取值取 min;而放隔板的作用就体现为斩断隔板左边的所有函数。

一个点若不被传染,那么

“沿着T取max”

pE1b27j.md.png

代码实现


反思总结

posted @   矞龙OrinLoong  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示