
并查集
程序员bigsai
坚持分享学习,写了一本原创数据结构与算法pdf分享给大家。
展开
-
java最简单的并查集(不想交集合)以及杭电1272
并查集要有的一些属性:value:表示当前值,指针:(不一定是指针)指向父节点。 还有一个属性number:表示该树存在的总个数。(也可以用深度表示)。我用小树插在大树上。 如果是普通数字表示的树,可以简化: 初始全部-1,-1表示指向自己,数组的值表示指向。你可能会问那么总数怎么表示,很简单,其实我们不需要知道所有节点的总数,只需要根节点的总数就可以了,正常情况下根节点的初始是-1,但是一旦...原创 2018-05-16 00:05:31 · 2765 阅读 · 0 评论 -
杭电1232 畅通工程
Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? Input 测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道...原创 2018-05-17 10:51:22 · 3308 阅读 · 0 评论 -
杭电1325java实现
题目链接 问题描述 树是一个众所周知的数据结构,它可以是空的(null,void,nothing),也可以是一组由节点之间的有向边连接起来的一个或多个节点,满足以下属性。 只有一个节点称为根,没有有向边指向它。 除根之外的每个节点都只有一条边指向它。 从根到每个节点有一个唯一的有向边序列。 例如,请考虑下面的插图,其中节点用圆圈表示,边用箭头表示。前两个是树,但最后一个不是。 ...原创 2018-05-18 08:46:24 · 2687 阅读 · 0 评论 -
canvas并查集画随机迷宫
之前学习不想交集合(并查集)的数据结构,看了很多大老用窗体画出随机迷宫,感觉挺震撼的,下心学习了一下。 这个过程想着不太复杂,就是做起来挺麻烦,需要自己一点点处理。大概步骤如下 1:定义好不想交集合的基本类和方法(search,union等) 2:数组初始化,每一个数组元素都是一个集合,值为-1 3:随机查找一个格子(一维数据要转换成二维,有点麻烦),在随机找一面墙(也就是...原创 2018-06-22 17:12:11 · 3234 阅读 · 0 评论 -
hdu1181变形课dfs/bfs/并查集三种解法(java)
题目链接 Problem Description 呃…变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个统一规律:如果咒语是以a开头b结尾的一个单词,那么它的作用就恰好是使A物体变成B物体. Harry已经将他所会的所有咒语都列成了一个表,他想让你帮忙计算一下他是否能完成老师的作业,将一个B...原创 2019-03-19 20:04:31 · 2897 阅读 · 0 评论