ZJ b570: 為什麼你們都喜歡撞來撞去的?
好久沒寫題目了....... 題目鏈接: https://zerojudge.tw/ShowProblem?problemid=b570 看過題目之後其實不難發現他是並查集 因為他是炸掉邊而不是加入邊 我們用並查集會很難維護他 但如果我們倒著加入邊是不是能得到一樣的效果呢? 所以實際的做法就是倒著加入邊,每次輸出的結果也是倒著的 將每次的結果加入一個stack中 最後輸出stack中全部的值 就是答案啦! 以下為code #include < bits/stdc++.h > #include < bits/extc++.h > using namespace std; using namespace __gnu_cxx; using namespace __gnu_pbds; using ll = long long ; #define AC ios :: sync_with_stdio ( 0 ),cin. tie ( 0 ); struct DSU { vector <int> v; DSU ( int x ) { v. resize (x); for ( int i = 1 ;i < x;i ++ ) v[i] = i; } int find ( int x ) { ...