2011年9月24日
摘要: 题目:Cube Stacking题意:有N个cube,编号1-N,有两种操作:操作1: M x y 把含有cube的堆堆放在含有y的堆的上面。操作2: C x 询问cube编号为x的下面有多少个cube。解题思路:黑书上有类似题目,属于带有查询操作的并查集。设置两个变量D, C,D[i]表示i下面有几个cube, C[i],表示以i根时儿子个数,也就是堆在它上面的cube总个数。在每个M,C操作都要对x,y结点进行更新,有两种更新,一个是更新D[i],不停向根累加,一个是路径压缩。具体参考代码。View Code 1 #include <iostream> 2 #include & 阅读全文
posted @ 2011-09-24 20:36 Kenfly 阅读(274) 评论(0) 推荐(0) 编辑