码迷,mamicode.com
首页 > 其他好文 > 详细

Luogu P2342 叠积木 加权并查集

时间:2019-10-16 23:14:01      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:--   spl   i++   include   ret   div   pre   pac   span   

可能这是一类题目吧,这道题比较典型,可以当作模板。

技术图片
 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 
 5 const int Maxn = 30030; 
 6 
 7 int fa[Maxn],d[Maxn],size[Maxn];
 8 int find(int x){
 9     if(fa[x] == x)return x;
10     int rt = find(fa[x]);
11     d[x] += d[fa[x]];
12     return fa[x] = rt; 
13 }
14 
15 void merge(int x,int y){
16     x = find(x),y = find(y);
17     if(x != y){
18         fa[x] = y;
19         d[x] = size[y],size[y] += size[x];
20     }
21 }
22 
23 int p,x,y;
24 char ch;
25 
26 int main(){
27     for(int i = 1;i <= 30000;i++)fa[i] = i,size[i] = 1,d[i] = 0;
28     cin >> p;
29     while(p--){
30         cin >> ch;
31         if(ch == C){
32             cin >> x;
33             find(x);
34             cout << d[x] << \n;
35         }
36         else{
37             cin >> x >> y;
38             merge(x,y);
39         }
40     }
41 return 0;
42 }
View Code

 

Luogu P2342 叠积木 加权并查集

标签:--   spl   i++   include   ret   div   pre   pac   span   

原文地址:https://www.cnblogs.com/Wangsheng5/p/11688974.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!