专栏文章
题解 CF2165D Path Split
CF2165D题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @min1iogm
- 此快照首次捕获于
- 2025/12/01 19:02 3 个月前
- 此快照最后确认于
- 2025/12/01 19:02 3 个月前
题解 CF2165D Path Split
题意
给定长度为 的序列 ,求最少将其划分为多少个子序列,使得划分出的每个子序列中相邻两项之差的绝对值均为 。
数据范围:多测,,值域 。
做法
考虑建图,即每个点向编号比它大且差的绝对值为 的所有点连边,这时原题变成了最小路径覆盖。DAG 最小路径覆盖一般要转化为二分图最大匹配。
但本题是 显然直接匈牙利需要大约 年(不考虑闰年),所以我们要考虑优化。
由于二分图是无向图,所以连边的方式可以改为每个 向所有 的 连边,二分图是不变的。
然后发现此时按 从小往大匹配一定是不劣的。于是这题就变成从小往大枚举 并尽可能匹配 然后就做到线性(或者 ,视实现而定)了。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...