T1 Cave Paintings
水在从下向上涨的时候可以看做是一些从不连通变为联通,因此可以等价为一种树形结构的填水方案。为什么是树而不是 DAG 呢?是因为两个同高度的块如果能联通到同一个更低高度的水格,那么它们就联通,应该缩成一个点。
维护一下连通性做树形 DP 即可。
代码
T2 Non-Decreasing Subsequences
朴素 DP 即为每次将
的位置的方案数加到
上。设其中第
个位置产生的转移是
,则答案可表示为
,考虑预处理
和
即可。
注意到本题中的
是稀疏的,只有
个位置有值,因此它和一个矩阵的乘法复杂度是
。
时间复杂度
。(事实上可以做到
,但是在本题的数据范围下可能没有什么意义)
代码
T3 Falling Portals
如果一头年想走到 比它大的传送门,那就要尽量换乘 较小的传送门以更快地接近,否则就要尽量换乘 尽量大的。
按照
排序一个个加入,用栈维护一个折线然后在上面二分即可得到相遇时间,正反两边就可以处理出两种情况的答案。时间复杂度
。
代码