YC260A [ 20240317 CQYC省选模拟赛 T1 ] 伙伴(aka)

题意

给定一张无自环、重边的不连通图。

让你把这个图加上一些边成为若干个环。

每个节点的权值为相邻两条边为原图上的边的个数 - 1。

求所有点的权值和最大的权值。

Sol

考虑拆点。

集中注意力,发现连边后形成一个二分图。

既然要权值最大,肯定要让原图的边留下最多。

直接做最大匹配即可。

但是这样会有一个问题。

考虑做完最大匹配后,原图会变成若干个环、若干个链、以及若干个单独点。

注意到单独点可以连在链或者内部连。

所以如果只有环,且单独点只有一个时,这里就只能拆环了。

但是这里还有问题,如果单独点在原图上有边,这样就会使贡献不变。

所以这个单独点还不能在原图上有边。

跑一边网络流,在残量网络上判断即可。

复杂度:\(O(m \sqrt n)\)

posted @ 2024-03-17 19:21  cxqghzj  阅读(11)  评论(0编辑  收藏  举报