2025.2.5

[AGC031E] Snuke the Phantom Thief

考虑转化题意限制,以 L 限制为例 ,可以转化为从左到右第 \(b_i+1\) 个点的横坐标应大于 \(a_i\),其余同理,此时依旧是 \(4\) 种限制。

考虑枚举总点数将 \(4\) 维限制变为 \(2\) 维,具体的设总点数为 \(N\),枚举每个点,然后枚举这个点能否是从左到右第 \(x\) 个(就能知道它是从右到左第 \(N-x+1\) 个),是否合法根据转化后题意 的 L,R 进行判断。

这样每个点就只有两维限制(LR、DU),拆点后左部点对应一维右部点对应一维,跑费用流即可。

时间复杂度无意义。

ridge Club

注意到可以按 popcount 奇偶性分类变为二分图,简单建模即可跑费用流。

考虑优化,类比割巢原理,每条边的选择会影响 \(2n-1\) 条边,所以只用考虑边权前 \(k(2n-1)\) 大即可。

证明

考虑若每 \(2n-1\) 挨在一起,此时是最劣的情况,因为每次选择一条边能影响的最多,但此时至少有 \(k\) 个独立的集合,所以若选择非这 \(k(2n-1)\) 条边则一定不优(一定能调整到这 \(k\) 个集合之一)

时间复杂度无意义。

Incorrect Flow

考虑分讨 \(f\)\(c\) 的关系

类似分段函数算贡献即可

\(c\ge f\)

  1. \(u\to^{flow=c-f}_{cost=1}v\)

  2. \(u\to^{flow=inf}_{cost=2}v\)

  3. \(v\to^{flow=f}_{cost=1}u\)

\(c<f\) 时,先将 \(c\) 增加到 \(f\) 并将其算入贡献,后面减少流量时就不计算贡献了

  1. \(v\to^{flow=f-c}_{cost=0}u\)

  2. \(u\to^{flow=inf}_{cost=2} v\)

  3. \(v\to^{flow=c}_{cost=1}u\)

此时已经将流量变化的模型构造好了,考虑怎样满足流量守恒限制,由于此时每条边的流量都是 \(f\) ,将其视为强制满流成 \(f\),然后套路使用可行流再次建模即可,最后跑最小费用最大流即可(此时一定能满流,因为每条边的流量都是可变的)。

时间复杂度无意义。

p

大雷音寺的胜利!

posted @ 2025-02-05 21:34  Qyun  阅读(65)  评论(6)    收藏  举报