$floyd$ 传递闭包 + 二分图的相关理论.
先用 $floyd$ 做传递闭包,预处理每两点间的连通性.
每个点拆成入点和出点,再枚举点 $a,b$ ,若 $a$ 能到 $b$ ,就从 $a$ 的入点向 $b$ 的出点连边.
然后就是要求新建出来的二分图的最大独立集,就等于原来的点数减去它的最大匹配数.
1 |
|
夢はここに 思い出は遠くに
$floyd$ 传递闭包 + 二分图的相关理论.
先用 $floyd$ 做传递闭包,预处理每两点间的连通性.
每个点拆成入点和出点,再枚举点 $a,b$ ,若 $a$ 能到 $b$ ,就从 $a$ 的入点向 $b$ 的出点连边.
然后就是要求新建出来的二分图的最大独立集,就等于原来的点数减去它的最大匹配数.
1 | #include<bits/stdc++.h> |