二分图
我们就考虑,对于一个二分图来说,用超源连接一下左面的点,超汇连接右边的点,然后跑一边最大流,就是二分图最大匹配
定理:
- 二分图最大匹配=二分图最小点覆盖
- 有向无环图最小不相交路径覆盖
- 有向无环图最小可相交路径覆盖
- 二分图的最大独立集等于总点数减去最大匹配等于最小边覆盖
P2756
简单的二分图
左边点是外籍,右边是嘤籍
跑最大匹配
然后对于网络流来说,如果这条正边流量为0说明已经跑过了,就说明是匹配中的一条,输出就好
P1129
先倒推
目标的棋盘是每一行每一列都有一个点,就相当于是二分图的时候匹配数为n*2
如果一个点是1就把这个点和对应的行列连边
那如果交换一行呢,只是会把点的位置交换,但是边并不会改变
列同理,所以我们直接在原图上面求二分图最大匹配
P2764
我们把每一个点拆开,分为xi,yi
如果说有一条有向边的话,就把xu向yv连边,然后跑一遍最大匹配,再用总顶点数减去
为什么是对的?
因为一个定理:最小路径覆盖数=顶点数-最大匹配(记结论,别问为什么,我也不会
P3033
把所有的行列相交的连起来,左边行右边列
然后求最大匹配,用所有的减去最大匹配就好
最大独立集
P4014
二分图最大权匹配
用费用流跑一遍,代价就是费用,跑负权边(还有正权边因为这个东西很毒瘤让你求两次