题意
求补图的连通块个数
做法
起初\(S,T\)是全集
- \((1)\):若\(S\)非空,从\(S\)中弹出一个点,将其加入空集\(A\),将其弹出\(T\),进行\((2)\)操作;否则退出
- \((2)\):若\(A\)非空,弹出任意点\(x\),进行\((3)\)操作;否则返回\((1)\)
- \((3)\):将\(x\)在原图中的邻点在\(T\)内的弹出,将\(T\)内的点加入\(A\)弹出\(S\),清空\(T\),将从\(T\)中弹出的邻点加入。返回\((2)\)
用链表维护,\(O(n+m)\),感觉讲得好抽象啊。。要是看不懂随便扒份代码看吧,就不放了
bzoj1098
原文:https://www.cnblogs.com/Grice/p/12625136.html