二分图最大匹配网络流做法
题意
自己学校的OJ,题目大意是给定totline个数对x,y,表示x可以和y搭配,数据保证一个数x出现在右边最不会出现在左边
思路
人为增加难度2333,二分图最大匹配使用网络流来做,为什么可行呢?
这个图片是二分图最大匹配的解释图
本质就是求从左到右有多少对。
那么我们把左边的点连到一个超级源点,右边连到超级汇点,然后有这张图:
那么网络流这里求的是…
从左边到右边一共有几个边(每个点最大流量是1)
注意这里是每个点,所以要经过一些处理
(所以我用邻接矩阵偷懒XD)
顺便说一句,我被数组开小了坑了足足一个中午的时光,maxnode>1002,我开了1001…
使用链式前向星储存的人们请注意!超级源点到各点之间的最大流量请设为1!因为为0x7ffff时一个红点将可以和0x7ffff和蓝点连接!
以下是AC程序源码
代码