摘要:
首先感受一下不难发现可以二分 \(p\)。 现在相当于要进行操作使得所有数都变为 \(p\),比较暴力的做法是从 \(1\) 开始,如果比 \(p\) 打就一直减,然后递推到下一项,如果递推完了再回到第一项,可以证明递推的次数比较有限,如果此时都不行就炸了。 阅读全文
posted @ 2025-10-28 17:05
Alexande
阅读(2)
评论(0)
推荐(0)
摘要:
绝世唐题,为啥没有人写题解啊。 首先发现划分成若干个段,设一个 DP \(f_i\) 表示以 \(i\) 结尾的分段方式的最大贡献,那么朴素转移就是你去枚举区间取 \(\max\)。 发现是求 \(h\) 的最小值所对应的 \(b\),比较典的做法是扔进单调栈里,用一棵线段树维护,每次弹栈就将原本 阅读全文
posted @ 2025-10-28 16:26
Alexande
阅读(2)
评论(0)
推荐(0)
摘要:
启动脑子题专场。 首先一个比较关键的地方在于,这个题是环,不是链。想链的情况下怎么做,那么所有路径都已经确定了,我们使用简单数据结构维护一下区间覆盖即可。 发现一个事情,就是最后最优的情况必定至少割掉一条边,我们枚举到底割了哪条边,然后就转化为链的问题了,不难发现每次移动一格总共只会更改 \(O(n 阅读全文
posted @ 2025-10-28 15:08
Alexande
阅读(1)
评论(0)
推荐(0)
摘要:
正难则反,我们不去考虑移动的元素反而考虑不动的元素。 考察不动的元素一定需要形成一个不下降子序列,并且值必须连续,DP 即可。 比较能够启动大脑的一个题。 阅读全文
posted @ 2025-10-28 14:25
Alexande
阅读(2)
评论(0)
推荐(0)
摘要:
刻进骨子里的结论。 首先显然是先除以 \(G\),然后变成区间内最远互质点对,由质数分布定理得,这个点对和区间长度是一个量级的,我们枚举长度后再枚举端点,复杂度是可以接受的。 阅读全文
posted @ 2025-10-28 11:48
Alexande
阅读(3)
评论(0)
推荐(0)
摘要:
建可持久化 0/1 Trie,对每个点二分即可。 阅读全文
posted @ 2025-10-28 11:38
Alexande
阅读(1)
评论(0)
推荐(0)
摘要:
比较自然的想法是将相同颜色的点缩掉,然后在过渡的地方拆点,但这样不好实现。 比较好的实现方式是建虚点,隐式的缩块,然后将最短路长度除以 \(2\) 即可。 阅读全文
posted @ 2025-10-28 10:23
Alexande
阅读(2)
评论(0)
推荐(0)
摘要:
首先将 \([l, r]\) 转化为前缀异或区间。 然后做了 D1,我们发现相邻两项是可以抵消的,具体来说,扩展结论是当 \(i > n\) 时且 \(i\) 为奇数,前缀异或是相等的,因为中间的项都被消掉了。然后你发现 \(a_i = 0/1\) 的性质我们还没有用上,考虑递归计算 \(i\) 为 阅读全文
posted @ 2025-10-28 09:59
Alexande
阅读(2)
评论(0)
推荐(0)

浙公网安备 33010602011771号