一、传送门
https://www.luogu.com.cn/problem/P2764
二、算法分析说明与代码编写指导
(点、边)支配集、覆盖集、独立集,以及匹配
最小路径覆盖(原文)
匈牙利算法
将任意顶点 v 拆成 v 和 v’,存储的时候将 v’ 编号为 v + n 存储。
print 函数用于输出最小路径覆盖中的每一条路径。最小路径覆盖指的是关联图中全部点的路径的条数最小。
三、AC 代码
#include<cstdio>
#include<vector>
#include<bitset>
#pragma warning(disable:4996)
using namespace std;
const unsigned nmax = 301;
unsigned n, m, u, v, match[nmax], a; bitset<nmax> vis; vector<unsigned> g[nmax