今年384分是简单的,考试时注意时间复杂度和算法精度。谨记。
T1
等价于维护众数。
T2
计算出区间左右端点后,用排序+单调栈对区间去重
最后从左往右扫一遍即可。
T3
用 $f_{i,0/1}$ 维护与前一个相同和不相同的最大值,用桶优化转移即可。
T4 84分
先假设所有点都是任意,在从左往右加入确定值点,因为往上只影响$log n$个结点,所有时间复杂度是$O(Tnlogn)$。
T4 100分
非常好的DP,可以作为迷宫守卫的进阶版。
从下往上做起来太慢,那就从上往下!
利用自由结点:
自由结点是贪心理念的最优解,所以仿照84分,自由结点后缀中越多答案越多。
从下到上 到 从上到下 的差异
从下到上时的变量很多,而且没有直观的简化计算叶子结点权值变化的方法。
而从上到下,可以递推出一个区间,这是因为自由结点贪心的性质。
请注意的因为从上到下对每个结点只处理一次所以是$O(n)$而不是$O(nlogn)$