【自创模拟赛】set1 题解

T2

本来想在 $T2$ 搞一道动态规划题,但现在好像不是了……出成了一道毒瘤结论题。

题目背景和板子啥的来源于我以前在luogu存的一道自创题。

100pts

这个点甚至卡 $O(n*log(n^2))$,而二分肯定是不能去掉的,所以我们考虑去掉链上对区间答案的维护的那一维 $log$。

我们重新分开考虑两个点的大小关系,以防混淆。

当祖先 $\lt M$,子孙 $\gt M$ 时,

我们发现,一次移动只有两个点的归属发生变化,橙点被加入可利用区域,红点被加入已分完区域。

所以 $place$(橙点)的变化量为 $val_{orange}-val_{red}$。

关键就在这个变化量,怎么存这玩意?它跟红橙两点都有关系。

其实两点的距离 $x$ 是确定的,所以只要知道祖先(橙点)的位置,子孙(红点)的值就可以唯一对应地存。

当然我用了一种比较鬼畜的方法:再维护一个 $sum$,表示以子孙(红点)为根的子树中所有数的总和是多少。

猜你喜欢

转载自www.cnblogs.com/scx2015noip-as-php/p/set1.html