11.2

T1 一个ezDP

屏幕截图_3-11-2026_185426_xinyoudui

注意到区间端点取在max/min处不劣 考虑转移时分开l/r

或者维护y=x+b和y=-x+b的凸包转移?

别的就不太会了,大战T2无果。

11.3

T1 诈骗提

没想到反悔贪心,显然可以简图跑网络流。 不是,Dinic和ISAP怎么都78只跑45pts???

正解考虑建立无向图跑欧拉回路

具体的,先判掉度数为奇数的,考虑在原图上走欧拉回路,在建边时记录正、反边,在走反边时记录,即为翻转。 由于可将有向边起点看成上,终点看成下,故二者等价。

T2 反悔贪心

考虑维护每个人最早、晚安抚时间。

显然\(a\)是定的,在\(b>0\)时尽量后选,在\(b<=0\)时尽量先选。

但这样会有冲突。

于是再对b>0的维护栈:

把已处理的位置划成若干连续分组,每组内所有人使用相同的时间。

最前面可能有一个“基准组”,时间固定为 L,不存进栈。

其余各组的起点为:

s[1] < s[2] < ... < s[m]

栈中保存这些起点。整组系数和就是这一组所有 b 的和

因为 R 单调不减,所有分组时间也单调不减。

一个组内任意位置 j 都满足 j >= s[x],故 R[j] >= R[s[x]];将整组安排在 R[s[x]] 不会超过任何人的上界。

栈内每个分组的系数和严格为正。

在遇到b<0时,考虑弹出栈顶还是入栈收益大即可。

注意树可能不会安抚任何人或者最右一个\(i\)满足\(p_i != -1\)之后的人,要动态维护这一段的max。