USACO 2020Jan Platinum 题解

T1 Cave Paintings

水在从下向上涨的时候可以看做是一些从不连通变为联通,因此可以等价为一种树形结构的填水方案。为什么是树而不是 DAG 呢?是因为两个同高度的块如果能联通到同一个更低高度的水格,那么它们就联通,应该缩成一个点。
维护一下连通性做树形 DP 即可。
代码

T2 Non-Decreasing Subsequences

朴素 DP 即为每次将 ≤ a i \le a_i ai 的位置的方案数加到 a i a_i ai 上。设其中第 i i i 个位置产生的转移是 a M i aM_i aMi,则答案可表示为 ( 1 , 0 , … , 0 ) M l M l + 1 ⋯ M r ( 1 , 1 , … , 1 ) T (1, 0, \dots , 0) M_lM_{l+1}\cdots M_r (1,1,\dots,1)^\mathsf T (1,0,,0)MlMl+1Mr(1,1,,1)T,考虑预处理 ( 1 , … , 0 ) M k − 1 ⋯ M 1 − 1 (1, \dots, 0) M_k^{-1} \cdots M_1^{-1} (1,,0)Mk1M11 M 1 ⋯ M k ( 1 , … , 1 ) T M_1 \cdots M_k (1, \dots, 1)^\mathsf T M1Mk(1,,1)T 即可。
注意到本题中的 M M M 是稀疏的,只有 Θ ( k ) \Theta(k) Θ(k) 个位置有值,因此它和一个矩阵的乘法复杂度是 Θ ( k 2 ) \Theta(k^2) Θ(k2)
时间复杂度 Θ ( n k 2 + q k ) \Theta(nk^2 + qk) Θ(nk2+qk)。(事实上可以做到 Θ ( n k log ⁡ k + q k ) \Theta(nk\log k + qk) Θ(nklogk+qk),但是在本题的数据范围下可能没有什么意义)
代码

T3 Falling Portals

如果一头年想走到 y y y 比它大的传送门,那就要尽量换乘 x x x 较小的传送门以更快地接近,否则就要尽量换乘 x x x 尽量大的。

按照 y y y 排序一个个加入,用栈维护一个折线然后在上面二分即可得到相遇时间,正反两边就可以处理出两种情况的答案。时间复杂度 Θ ( n log ⁡ n ) \Theta(n\log n) Θ(nlogn)
代码

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值