YC260A [ 20240317 CQYC省选模拟赛 T1 ] 伙伴(aka)
题意
给定一张无自环、重边的不连通图。
让你把这个图加上一些边成为若干个环。
每个节点的权值为相邻两条边为原图上的边的个数 - 1。
求所有点的权值和最大的权值。
Sol
考虑拆点。
集中注意力,发现连边后形成一个二分图。
既然要权值最大,肯定要让原图的边留下最多。
直接做最大匹配即可。
但是这样会有一个问题。
考虑做完最大匹配后,原图会变成若干个环、若干个链、以及若干个单独点。
注意到单独点可以连在链或者内部连。
所以如果只有环,且单独点只有一个时,这里就只能拆环了。
但是这里还有问题,如果单独点在原图上有边,这样就会使贡献不变。
所以这个单独点还不能在原图上有边。
跑一边网络流,在残量网络上判断即可。
复杂度:\(O(m \sqrt n)\)