JOISC 2019 Day2 题解
Last Update:
这两道题都是十分具有 JOI 风格的数据结构题。
都没有完全做出,不过确实感受到了数据结构的妙处和水平的提升。
loj 3033 两根天线
题意: https://loj.ac/p/3033
不妨设
使用 cdq 分治+线段树处理这些偏序限制即可拿到除最后一个包的所有分。
然后笔者卡在了这里,一直没有想到好的办法处理这些限制。
考虑把节点
那么我们从小到大扫描
一个询问的答案就是在
我们不妨假设
此时绝对值就被去掉了。更方便的是,我们并不需要考虑
那么此时,设
扫到一个
在线段树上维护
本题的难点主要在于这个扫描线,想到了之后其实不难使用这种线段树技巧完成维护。扫描线作为一种较为轻工业的数据结构技巧,其运用更加考验思维能力。
代码: https://loj.ac/s/1803371
loj3034 两道料理
题意: https://loj.ac/p/3034
首先显然有一个
设
考虑优化这个 DP。
我们枚举
我们注意到
那么,转移式子中的
那后半部分怎么办呢?设
我们的操作相当于将每个
但是我们发现,此时
这还是不好处理。
考虑
- 单点加
- 在
递增的过程中,每个 都会从 变成 ,在恰好从 变到 的这一刻, 要加上 。 - 如果
,让 。
我们发现
注意到
所以我们用个
时间复杂度
代码: https://loj.ac/s/1803767