数据结构
文章平均质量分 90
Moressette
ACMer
展开
-
并查集的介绍及实现
所谓并查集,就是一种用来管理元素分组情况的数据结构。并查集一共有两种操作: 第一种操作:查询元素a和元素b是否属于同一组 第二种操作:合并元素a和元素b所在的组 正是因为刚好有这两种操作,所以这种数据结构叫做并查集。并查集也是使用数据结构实现的,不过不是二叉树。 对于并查集来说,哪个结点是哪个结点的父亲,以及树的形状等信息无需关注,整体形成一个树形结构才是最重要的。 并查集之所以高效的原原创 2015-08-02 10:47:49 · 324 阅读 · 0 评论 -
HDU 1232 畅通工程 并查集
这道题应该就是并查集的最基础的应用了。理解题意以及并查集基本函数的功能就可以写出代码了。 不知道并查集是什么的小伙伴推荐看一下我的上一篇介绍并查集的文章 并查集的介绍及实现 这道题其实就是让我们根据连通性,求一下有几个连通分支,至于需要修多少条路,当然是连通分支数-1了。 代码也比较好理解,在初始化之后,每输入两个点就合并一下,合并之后,再依次查找,当查找到父节点为自己的结点个数,也就是根节原创 2015-08-02 10:54:54 · 318 阅读 · 0 评论 -
线段树单点更新 - HDU 1166 敌兵布阵 1754 I Hate it
上个学期看了很多复杂的数据结构,但是由于之前对简单数据结构的了解不够深入,所以,没办法真正了解复杂数据结构的内涵,最近几天又看了一下线段树,总结一下线段树单点更新。 相信很多初学线段树的人,看了别人的模板代码都是只知其一,不知其二,只知道这道题求区间和是这么写,换一道题换一个题目背景自己就不知道要怎么修改了。 其实,可以这么理解,线段树在建树的过程中,叶子结点上储存的就是你所输入的那些数值,那原创 2015-07-27 15:28:42 · 463 阅读 · 0 评论 -
HDU 1272 小希的迷宫 并查集
虽然是一道比较简单的并查集应用。但是这道题需要注意的东西不少。首先要注意输入格式。 这道题主要就是判断一个无向图: 1、是不是连通图(也就是说连通分支数为1) 2、是否无环(其实就是输入的两个点是否有公共父节点,如果有公共父节点则说明这两个点肯定成环) 这道题不需要开rank[]数组,但是需要开一个visit[]来判断当前结点是否出现过。 题目传送门:小希的迷宫 HDU 1272原创 2015-08-03 10:30:41 · 308 阅读 · 0 评论 -
HDU 5349 MZL's simple problem (2015 Multi-University Training Contest 5 2015多校联合)
题目传送门:HDU 5349 MZL's simple problem MZL's simple problem Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 107 Accepted Submission(s):原创 2015-08-04 17:50:29 · 385 阅读 · 0 评论 -
HDU 5326 Work 并查集 (2015 Multi-University Training Contest 3 2015多校联合)
-_- 好吧我不得不承认这道题是签到题。 题目连接:work 这道题方法很多,可以用dfs等等,我是用并查集做的。思路很简单,就是求深度为n的结点个数。 看着代码自己感悟吧。~ #include #include #include #include #include using namespace std; int pre[105]; int t[105]; void find原创 2015-07-29 09:07:20 · 462 阅读 · 0 评论