专栏文章

noip T4 一个很简单的做法

P14638题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mimyoigs
此快照首次捕获于
2025/12/01 17:43
3 个月前
此快照最后确认于
2025/12/01 17:43
3 个月前
查看原文
pip_i 表示前缀和数组。显然总共有四条限制:
  • lil\le i
  • r>ir>i
  • rlLr-l\ge L
  • rlRr-l\le R
考虑根据 rir-i 是否 L\le L 分成两部分。
对于 riLr-i\le L 的部分,第一条限制一定成立,所以用单调队列求出 fr=prminrRlrLplf_r=p_r-\min_{r-R\le l\le r-L}p_l,然后再用用单调队列对 ii 求出 maxi<ri+Lfr\max_{i<r\le i+L}f_r 即可。
对于 riLr-i\ge L 的部分,第三条限制一定成立,令 d=RLd=R-L,此时相当于求出 maxl[id,i],r[i+L,i+L+d]prpl\max_{l\in[i-d,i],r\in[i+L,i+L+d]}p_r-p_l,相当于二维平面上一个等腰直角三角形的部分。
考虑令 qi=piLq_i=p_{i-L},转化为对于每个 iimaxrld,lirqrpl\max_{r-l\le d,l\le i\le r}q_r-p_l。我们每 d+1d+1 个分一段,然后再把包含 ii 的区间分成三类:端内,跨过这一段左端点,跨过这一段右端点的。
第一类的贡献就是后缀 max\max 减前缀 min\min;第二类发现这样的区间,覆盖的一定是 ii 一段内的前缀,所以枚举 rr,钦定跨过左端点后取后缀 max\max;第三类同理,于是就做完了。

评论

0 条评论,欢迎与作者交流。

正在加载评论...