Loading

摘要: 设 \(c_i = \max(i - a_i + 1, 1)\),\(p_i\) 为 \(\le i\) 的 \(j\) 中 \(c_j\) 最大的 \(j\) 的值。 那么答案即为 \(\frac{n(n + 1)}{2} + n - \sum p_i\),单点修改使用单侧递归线段树即可。 阅读全文
posted @ 2025-11-03 20:02 Alexande 阅读(6) 评论(0) 推荐(0)
摘要: 你仔细想一想,枚举 \(Q\) 好像不太可做。 一个非常牛的操作是考虑构造 \(a\) 与 \(Q\) 形成双射,我们当然希望 \(a\) 能够通过一些简单的基本增量操作得到,这样利于我们统计答案。 然后比较难观察到的一点是,我们一定可以这样构造 \(a\) 使得每种不同的 \(a\) 对应的 \( 阅读全文
posted @ 2025-11-03 16:58 Alexande 阅读(5) 评论(0) 推荐(0)
摘要: 先考虑不朴素 \(O(n^2)\) 做法。 显然是考虑枚举位置 \(i\),将小于 \(a_i\) 的位置拎出来,显然其将序列分成若干段,每个段的子贡献是一样的(大概是一个等差数列一样的东西)。 这个做法一看就很有前途,从小到大枚举每次新增的数会将两个段隔开,比较复杂的讨论一下即可。 阅读全文
posted @ 2025-11-03 16:21 Alexande 阅读(5) 评论(0) 推荐(0)
摘要: 考虑断环成链,这样路径就唯一了。 考虑前缀和,并且把 \(h\) 拆到前缀和的值上,那么两个点的贡献就是其相减,发现一定选取最大值和最小值,先后关系发现不影响,使用线段树求和即可。 阅读全文
posted @ 2025-11-03 15:50 Alexande 阅读(5) 评论(0) 推荐(0)