把状态拆成长链来跑网络流(转化为最小割):LibreOJ - 2384

本文搬运自本人高中时期CSDN博客,若图片加载不出来,可到原文查看:https://blog.csdn.net/zhangtingxiqwq/article/details/135058691

https://vj.imken.moe/contest/598718#problem/C

一个点要确定一个取值,然后每个取值还有代价,我们就拆成一条链:

在这里插入图片描述

源汇点就可以连对应代价的差分

然后题目肯定有某些一堆限制,关于某两条链的取值有什么限制,我们就可以在链之间连很多很多无穷的边来解决,比如:

在这里插入图片描述

这就代表如果第一条链 3\ge 3 ,则第二条链取值 <5< 5

此题同理。