传送门
最小路径覆盖
题意:从一张图中选择最少的边使图的端点集合v包含于所有选择边的端点集合。
I think
将原图中点i拆为两个点xi,yi,原图中的边(i,j)转化为(xi,yj),题给的是有向无环图,所以对新图求二分图最大匹配,最终原图点数-新图最大匹配数即为答案。
未匹配即未选择任意一条边时,若将每个点视为自环,此时答案为原图点数,找到一个匹配,答案便减少1,要求答案最大,因此求二分图的最大匹配。
Code
用的是匈牙利算法来着
#include<cstdio>
using namespace std;
const int sm = 4e2+5;
const int sn