【POJ-1988】Cube Stacking(并查集)
来源:互联网 发布:华为 知乎 编辑:程序博客网 时间:2024/05/17 22:23
//=====================================// KinderRiven POJ 1899//=====================================#include<cstdio>#include<cstring>using namespace std;const int maxn = 33333;const int INF = 30000;int fa[maxn]; //父亲结点的编号int ret[maxn]; //压在i下面有几个木块int size[maxn]; //以结点i为底的栈中元素的个数,如果i不是根,那么size[i] = 0;void init(){ for(int i = 1; i <= INF; i++){ fa[i] = i; ret[i] = 0; size[i] = 1;}}int find_father(int u){ if(fa[u] != u){ int temp = fa[u]; fa[u] = find_father(fa[u]); if(size[u]){ //size[i]不为0说明该元素为栈底的元素 ret[u] += size[temp]; size[temp] += size[u]; size[u] = 0; } else //否则的话这个元素就是一个普通的元素 ret[u] += ret[temp]; } return fa[u];}void union_set(int p,int q){ int fp = find_father(p); int fq = find_father(q); fa[fp] = fq; find_father(p); find_father(q); return;}int main(){ int n; init(); scanf("%d",&n); while(n--){ char op[10]; scanf("%s",op); if(op[0] == 'M'){ int x,y; scanf("%d%d",&x,&y); union_set(x,y); } else{ int x; scanf("%d",&x); find_father(x); printf("%d\n",ret[x]); } } return 0;}
0 0
- poj 1988 Cube Stacking 并查集
- poj-1988-Cube Stacking (并查集)
- poj 1988 Cube Stacking 并查集
- POJ 1988 Cube Stacking 并查集
- poj 1988 - Cube Stacking(并查集)
- poj 1988 Cube Stacking 并查集
- poj 1988 Cube Stacking 并查集
- POJ 1988 Cube Stacking(并查集)
- poj-1988-Cube Stacking (并查集)
- POJ 1988 Cube Stacking 并查集
- poj 1988 Cube Stacking(并查集)
- POJ 1988 Cube Stacking并查集
- 并查集-poj-1988-Cube Stacking
- poj-1988 Cube Stacking-并查集
- POJ 1988 Cube Stacking 并查集
- Cube Stacking POJ - 1988 并查集
- POJ-1988 Cube Stacking (并查集)
- 【POJ 1988 Cube Stacking】+ 并查集
- 关于json中 java.lang.NoClassDefFoundError: net.sf.json.JSON的问题
- hive学习笔记
- 关于从后台获取数据List<User>转化为JSON格式在前台用easyui以表格显示
- Zend Framework 2 入门-自定义视图助手(View-Helper)
- 鸟瞰数据库系统原理
- 【POJ-1988】Cube Stacking(并查集)
- 【交互设计】七步打造手机网站
- ajax个人学习笔记
- android:shape的使用 (android用xml文件生成图像控件)
- 将ImageView变成灰色竟是如此简单
- 经典的标量子查询
- duilib combo控件,当鼠标滚动时下拉列表自动关闭的bug的修复
- 锚文本的真正代价在于升职用户体验而非网站排名
- BOOST库的thread