Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int main(){
- ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
- cin >> n >> m;
- for(int i = 1; i <= n; ++i) num[i] = i;
- for(int a, b; m; --m){
- cin >> a >> b;
- // 合併兩塊
- int anum = num[a], bnum = num[b];
- if(anum != bnum){
- for(int i = 1; i <= n; ++i){
- if(num[i] == bnum) num[i] = anum;
- }
- }
- // 對於每一塊計算答案
- long long ans = 0;
- vector<bool> vis(n, false);
- for(int i = 1; i <= n; ++i){
- if(!vis[i]){
- long long siz = 0;
- for(int j = i; j <= n; ++j){
- if(num[j] == num[i]){
- ++siz;
- vis[j] = true;
- }
- }
- ans += siz * (siz - 1) / 2;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement