10.8
Median Pyramid Hard
神奇的二分答案题,二分最上面的值,将大于等于的视为1,否则视为0,注意到最上面的值根据0/1的多少有单调性,并且由最靠近中间的连续两个1/0决定了上面的值,就可以求解了。
排序
线段树分裂,当然也可以二分答案做,和上面那个题有异曲同工之妙,但是线段树分裂少个log,更加快速,具体就是用set维护现在连续的区间,动态开点权值线段树把桶合并,查询时直接把q位置拆开即可。
树的维护
LCT练手题,当然也可以树剖水过,树剖比LCT快了一倍...
树剖方法就不说了,LCT的话,重新啃了一遍博客,加深了我的理解吧,split(x,y)就可以很好的处理x到y路径上的信息了,up要在rotate和splay时up,down就是splay和findroot时一口气从上往下down完,处理边权可以把边看成点连接左右端点,up时候判断一下这个点是边还是点就行了。
Everything that kills me makes me feel alive.