把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end

UOJ #806. 【UR #25】见贤思齐

题面传送门

差点非常唐地写平衡树了(

首先考虑一棵树怎么做,其中根节点每次增加 1

fi(x) 表示 i 号点在 x 时刻的值,如果我们已经确定了 pi 的函数,现在来考虑确定 i 的函数。

显然,第 i 个人第 j 天的值要在 [ai,ai+j] 区间内,其次,手玩一下可以发现,值就是 f(pi,j1)+1,因此有 f(i,j)=max(ai,min(ai+j,f(pi,j1)+1)

表现在函数差分值上,就是先将前面一段替换成 0 或者 1,然后插入一个 1,删除最后一个差分值。可以用线段树维护。

然后考虑在基环树上,我们发现环上最小值的点永远是最小值,因此其一直是 +1 的,所以可以断环为链,然后就是树的情况了。

但是我们实际上是可以倍增的!这个过程可以看做一个初始值不断归入一些区间的过程,则我们从后往前找到第一个位置使得区间无交,就可以确定最后函数值是什么了,这可以用一个倍增实现,代码非常好写。

submission

posted @   275307894a  阅读(65)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2022-06-30 BZOJ #3864. Hero meet devil
2022-06-30 luogu P4357 [CQOI2016]K 远点对
2021-06-30 luogu P4091 [HEOI2016/TJOI2016]求和
浏览器标题切换
浏览器标题切换end
点击右上角即可分享
微信分享提示