hdu3635】的更多相关文章

Dragon Balls Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5972    Accepted Submission(s): 2194 Problem Description Five hundred years later, the number of dragon balls will increase unexpecte…
/* 题意:有N个城市, 每一个城市都有一个龙珠(编号与城市的编号相同),有两个操作 T A ,B 将标号为A龙珠所在城市的所有的龙珠移动到B龙珠所在城市中! 思路:并查集 (压缩路径的时候将龙珠移动的次数进行更新) */ #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #define M 10005 using namespace std; int f[M]…
题意:n个城市有n个龙珠,T  a,b 代表将龙珠a移动到b城市,Q a代表查询龙珠a所在城市,该城市有多少颗龙珠,该龙珠移动了多少次. 注意:移动时是将龙珠所在该城市所有龙珠都移动,每个龙珠不会再回到自己以前呆过的城市.就是说假如龙珠1,2,3,都在城市2,那么龙珠就不能再移动了 在路径压缩的时候更新他的距离值 rootxx --> rootx 移动是3,rootx -->x的移动是5 那么 rootxx --> x的移动就是rootxx --> rootx+rootx --&g…
/* 一开始第a个球在第a个城市 操作T a b,把第a个球所在城市的所有球移到b所在的城市 操作Q a 要求输出 第a个球在哪个城市 第a个球所在的城市有几个球 第a个球移动次数 */ #include<iostream> #include<cstring> #include<cstdio> #define move movee #define MAXN 10005 using namespace std; //第i个球所在城市,第i个球所在城市有几个球,第i个球移动…
部分内容摘自以下大佬的博客,感谢他们! http://blog.csdn.net/dm_vincent/article/details/7769159 http://blog.csdn.net/dm_vincent/article/details/7655764 基础得可以去看上面的连接,再此我只记录一些温故而知新得知识点 并查集,连通起来后类似一颗颗得树,我们得基本操作是Find函数,寻找树根,所以树得高度,成为了,并查集算法快不快的关键条件,为了加快算法,我们采取以下操作: 1.尽可能得让每…
Dragon Balls Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 6086 Accepted Submission(s): 2248 Problem DescriptionFive hundred years later, the number of dragon balls will increase unexpectedly, so…
Problem Description Five hundred years later, the number of dragon balls will increase unexpectedly, so it's too difficult for Monkey King(WuKong) to gather all of the dragon balls together.  His country has N cities and there are exactly N dragon ba…
本文是作为上一篇文章 <并查集算法原理和改进> 的后续,焦点主要集中在一些并查集的应用上.材料主要是取自POJ,HDOJ上的一些算法练习题. 首先还是回顾和总结一下关于并查集的几个关键点: 以树作为节点的组织结构,结构的形态很是否采取优化策略有很大关系,未进行优化的树结构可能会是“畸形”树(严重不平衡,头重脚轻,退化成链表等),按尺寸(正规说法叫做秩,后文全部用秩来表示)进行平衡,同时辅以路径压缩后,树结构会高度扁平化. 虽然组织结构比较复杂,数据表示方式却十分简洁,主要采用数组作为其底层数据…