P6717

神秘题,我现在还没有理解这个东西的本质。

直接维护自然很寄,我们有两种思路:

  • \(K\) 的限制转化掉,用数据结构维护之。
  • 弱化贡献,转化为单点极值。

对于第二种思路,我进行了这些尝试:

  • 转化为 \(a_x\) 加上 \([x-K+1,x-1]\) 的最大值。
  • 二分答案。
  • 尝试观察一次操作后的影响。

想了很久不会 qwq。其实是没有注意到经典算法运用的条件。

第一种尝试中没法做的根本原因在于,不能维护修改。

进一步的,是不能维护删除

这个时候思路就出来了。线段树分治即可。\(\mathcal O((n + q)\log n\log q)\)

这个方法相对平凡,有没有厉害做法?

dottle 的题解中说明了,按 \(K\) 分块后答案一定包含某个段中的最大值。然而我并没有想清楚这个算法的本质,按 \(K\) 分块在我看来只是为了探寻隐含的性质,毕竟直接在原序列上分析很难得到。但是 motivation 是什么呢??!

相对来说 ღꦿ࿐ 大神的思路看起来更有迹可循。

posted @ 2024-04-16 20:36  ImALAS  阅读(5)  评论(0编辑  收藏  举报