专栏文章
题解:AT_joisc2019_e ふたつの料理 (Two Dishes)
AT_joisc2019_e题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miq7vg2p
- 此快照首次捕获于
- 2025/12/04 00:23 3 个月前
- 此快照最后确认于
- 2025/12/04 00:23 3 个月前
显然有暴力 : 表示第一个序列进度是 ,第二个序列进度是 ,显然我们知道这个状态的时刻是 。
二维 考虑扫描线一维变成整体 ,每次 的时候我们会进行前缀加,并把若干个 的转移系数 变成 ,然后从左往右进行转移。
考虑动态维护 ,显然 ,否则就会触发 的转移。
考虑仅仅变化一个 造成的影响:
-
若 ,那么将其置为 后 会变大,并且由于转移变得更不优了,不会触发转移。
-
若 ,那么置为 后 会变小,转移变得更优了会立刻触发转移,造成的效果是操作前从 往后找一个最短的前缀使得 ,然后将 的 清空,将 的 减去 ,手模可以理解这个结论。
同样的,考虑仅仅进行前缀加(对前缀 加 )造成的影响:
-
若加了正数,则前缀 内部没有任何新的转移,这个过程后若 ,则我们需要仿照上一部分进行 的转移。
-
若加了负数,我们把前缀加变成对差分数组的改变,也就是全局减和后缀加,此时一个关键的问题是:所谓的全局减,要不要仿照上一个后缀减那样,对差分数组处理?
-
答案当然是不!从事实意义来考虑,我们对差分数组的处理是进行了 的转移,而事实上我们对全局(或者说前缀)进行减,并不会导致前缀内部或外部产生相邻之间的转移。
-
从抽象的角度来说,我们一定要在这个全局减和上面的后缀减之间找到一个不同点,那就是全局减改变的是 , 作为没有意义的值应当是 ,所以 ,在此约束下我们进行上文的过程就是正确的。
-
现在的问题是,我们即将同时变化多个 ,有正有负,还要进行一个前缀加,在 中这些“事件”的时刻都是同时发生的,那么我们自然要问:是多次做上面这个过程吗?按照什么顺序做?
事实上每个操作只会影响后缀,且与前缀无关,所以要想它们同时执行,从后往前做即可。
code。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...