主要谈谈建图的原理给自己听
首先贪心出来的一个图上加的边都是可走的【修改边】,这些修改边的反向边是用来在跑网络流的时候撤销修改的
换句话说,每条修改边都是备选项,是用来调整图上各点入度的
所以,既然是保存修改边,那么图里是不保存我们原本贪心保留的边的,那些边的信息都被压缩进最低消耗和各点的入度了
把贪心边引发的信息称为初始流,我现在需要一个附加流,附加流叠加上初始流能让各点的入度变为0
假设初始流中u点的入度为正x,意即u点的入度大于出度
那么附加流中就需要让u的出度大于入度
为了跑出这样一个并不平衡的流,我要从虚拟源节点s向u连一条容量为u入度绝对值的边
这样在跑最大流的时候,u会往更多的点进行增广,这样也就达到了修正入度为0的目的
这里的增广即是走修改边