专栏文章

P4350题解

P4350题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miocpfk2
此快照首次捕获于
2025/12/02 17:03
3 个月前
此快照最后确认于
2025/12/02 17:03
3 个月前
查看原文
考虑将询问离线,按边权从大到小依次向途中加边。
如何计算当前的图经过一系列操作后的点数和边数?
注意到,操作(a)不影响任何其它点的点权;操作(b)同样不影响。所以图中度数为 00 的点一定会被删去,不考虑自环,所有度数为 22 的点也一定会被删去,其它点不会被删。考虑什么时候会形成自环,每一个没有其他分支的环,也就是每个点度数都为 22 的环,会一直删点知道剩下编号最大的那一个。于是剩下的点数即为
numnode=n度数为0的点数度数为2的点数+每一个点度数都为2的联通块数num_{node}=n- \text{度数为0的点数}-\text{度数为2的点数}+\text{每一个点度数都为2的联通块数}
类似地,剩下的边数为
numedge=m度数为2的点数+每一个点度数都为2的联通块数num_{edge}=m-\text{度数为2的点数}+\text{每一个点度数都为2的联通块数}
每一个点度数都为2的联通块数可用并查集维护,具体地,维护一下每个并查集的点数以及度为 22 的点数即可。

评论

0 条评论,欢迎与作者交流。

正在加载评论...