专栏文章

题解 AT_arc201_d Match, Mod, Minimize

AT_arc201_d题解参与者 2已保存评论 2

文章操作

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

当前评论
2 条
当前快照
1 份
快照标识符
@mip1knee
此快照首次捕获于
2025/12/03 04:39
3 个月前
此快照最后确认于
2025/12/03 04:39
3 个月前
查看原文

Solution

为了方便叙述,下文的下标从 00 开始。
aa 降序排列,bb 升序排列。在 aa 上选取一个分界点,使得分界点前面的 ai+bima_i+b_i\ge m,这时候前面的 aia_i 的贡献就变成了 aima_i-m
再考虑 bib_i 的配对,感性理解,越大的 aia_i 应该和越小的 bib_i 配对,于是实际配对就是从分界点 kk 开始配对,形式化的就是将 bib_ia(i+k)modma_{(i+k)\bmod m} 配对,也就是官方题解里提到的循环移位。
bb 完成循环移位后,此时显然应有 i,ai+bi0\forall i, a_i+b_i\ge 0。此外,手搓一下不难发现,分界点越靠前,max{ai+bi}\max\set{a_i+b_i} 就越大,所以我们只需要二分找到最后的合法分界点并计算贡献即可。
时间复杂度 O(nlogn)O(n\log n)

Code

代码实现将二分的 check 和贡献计算合一起了。

评论

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

正在加载评论...