My Blogs
P10430 [JOISC 2024 Day1] 鱼 3
首先操作可以看成是单点减 和后缀减 ,问区间能不能全部减到 ,并最小化单点操作次数。
假设先进行所有的单点修改,则一定是把一个区间改成单增的。
考虑扫描线,从左向右依次新加入数,并且在这个过程中要保持当前的序列单增。可以用一个单调栈来维护连续段。
这里的连续段指的是相邻两个数的差小于 的极大连续段,如果当前栈顶连续段的右端点大于新加入的数 ,就需要对整个连续段的数进行一次操作,直到满足右端点小于等于当前的 。
栈顶不断减 的过程中,可能会和它下面的一个连续段合并。这样复杂度是均摊 的。假设这次对某个连续段进行了 次操作,可以看成是一次序列上的区间加 ,查询就是查询区间和,用树状数组或者线段树实现,复杂度是 。代码找不到了 QwQ。
分类:
题解 / Luogu
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现