专栏文章

题解:CF2046D For the Emperor!

CF2046D题解参与者 2已保存评论 1

文章操作

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

当前评论
1 条
当前快照
1 份
快照标识符
@miqk612k
此快照首次捕获于
2025/12/04 06:08
3 个月前
此快照最后确认于
2025/12/04 06:08
3 个月前
查看原文
凭啥 3k1 来着。
首先显然要缩点成一个 DAG,每个点的 aa 是 SCC 里所有的 aa 之和,然后考虑网络流。
一条一条限制看,首先点 uu 能派出的信使个数 out(u)\operatorname{out}(u) 与到达点 uu 的信使个数 in(u)\operatorname{in}(u) 必然有:
out(u)in(u)+au\operatorname{out}(u)\le \operatorname{in}(u)+a_u
然后每个点都必须要有至少一个信使经过,那么就把点 uu 拆成 uinu_{\text{in}}uoutu_{\text{out}},连一条 uinu_{\text{in}}uoutu_{\text{out}} 的下界为 11,上界为 ++\infin 的边。
考虑什么时候要单独给 uu 一份计划,当且仅当入流量为 00,也就是说,没法满足 uinu_{\text{in}}uoutu_{\text{out}} 的下界。开一个新点 umidu_{\text{mid}},向 uinu_\text{in} 连一个上界为 11,费用为 11 的边,向 uoutu_{\text{out}} 连一条上界为 ++\infin 的边。
结合第一条限制,ss 再向 umidu_\text{mid} 连一条上界为 aua_u 的边,因为信使可以在任何一个站点停下,所以再从 uoutu_{\text{out}}tt 连一条上界为 ++\infin 的边。
然后直接最小费用上下界可行流。

评论

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

正在加载评论...