题目地址:
将题目要查询的数倒过来求,先加一条边,保存cc(连通分支数) 然后再加一条边....
当合并两个等价类的时候连通分支减1
代码:
#include#include #include #include using namespace std;int p[10000];int u[100000];int v[100000];int ans[100000];int find(int x){ return p[x]==x?x:p[x]=find(p[x]);}int main(){ int n,m; int a,b; while(cin>>n>>m) { for(int i=0;i =0;i--) printf("%d\n",ans[i]); printf("%d\n",n); }}