poj 1988 Cube Stacking 并查集

本文介绍了一种使用并查集解决特定问题的方法。该问题涉及两种操作:一是将包含元素X的堆栈移动到包含元素Y的堆栈顶部;二是计算元素X所在堆栈下方的立方体数量。通过构建以栈底为根节点的并查集结构,实现高效的合并与查找操作。

题意:两种操作:  move : 将包含X的stack 至于包含Y的stack的栈顶.

      count:计数X所在stack的X的下面cube的数量.

思路:运用并查集.以栈底为根节点,parent[i]表示i的父节点,num[i]表示i 所在集合cube数量,rank[i]表示i 的度,即i下的cube的数量.

合并操作的时候,parent[x] = y(x放y之上).x下面增加了包含y的集合,所以x的度rank[x] 累加 num[y].同时以y为根节的集合,增加了包含x的集合.所以,num[y]累加num[x] .    查找操作的时候,找到一次x的父节点,对x的度都应更新.

详见代码:

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值