题目链接 给定一张图(不一定联通),每次删掉一个点(以及所有出边),问每次操作后剩余连通块个数。
考虑最终情况往回倒退。
假设所有的点都独立,答案就为$N$。
离线记录所有操作,存起来。
如果是炸了的点就忽略。
用并查集维护连通块,每当发现有两个连通块合并,就把当前答案减1。
是一道非常不错的题目,值得重做。
代码中的siz数组没有用。
1 |
|
My fear is not real.
题目链接 给定一张图(不一定联通),每次删掉一个点(以及所有出边),问每次操作后剩余连通块个数。
考虑最终情况往回倒退。
假设所有的点都独立,答案就为$N$。
离线记录所有操作,存起来。
如果是炸了的点就忽略。
用并查集维护连通块,每当发现有两个连通块合并,就把当前答案减1。
是一道非常不错的题目,值得重做。
代码中的siz数组没有用。
1 | #include <bits/stdc++.h> |