摘要: 题目链接:http://icpc.njust.edu.cn/Problem/Hdu/3038/ 参考博客: https://blog.csdn.net/weixin_44580710/article/details/86668200?depth_1-utm_source=distribute.pc_ 阅读全文
posted @ 2020-03-24 23:32 WA自动机~ 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://icpc.njust.edu.cn/Problem/Hdu/3367/ 题目要求一个连通图的最大伪森林,伪森林是一个最多有一个回路的图。我们只要用Kruskal最大生成树的策略就可以,给根节点表上记号表明这棵树有没有负环。其实也有一些贪心的思想。 代码如下: 1 #inclu 阅读全文
posted @ 2020-03-24 21:19 WA自动机~ 阅读(150) 评论(0) 推荐(0) 编辑
摘要: Prime算法的思路:从任何一个顶点开始,将这个顶点作为最小生成树的子树,通过逐步为该子树添加边直到所有的顶点都在树中为止。其中添加边的策略是每次选择外界到该子树的最短的边添加到树中(前提是无回路)。 Prime算法的正确性证明: 引理1:对于连通图中的顶点vi,与它相连的所有边中的最短边一定是属于 阅读全文
posted @ 2020-03-24 20:58 WA自动机~ 阅读(1746) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://icpc.njust.edu.cn/Problem/Hdu/1272/ 题目要求支持两种操作,一种是合并,一种是去除一个点与其他所有点的关系,但是其他的点显然是保持着原有的关系的,涉及关系的问题我们首要想到的就是并查集。删关系的操作我们可以让这个结点指向一个从没有用过的结点就 阅读全文
posted @ 2020-03-24 20:04 WA自动机~ 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 题目链接: 题目给出哪些边之间有连线,问图中是否构成环,还有每两个点之间是否相通,就是问给出的这些点是否构成树,我们只要扫一遍是否边的数量加一是点的数量然后判在同一棵树中的两个点是否重复连边就可以了。其实这道题也不需要判断是否存在环,直接用树的特性就解决了。判断不重复的点的数量可用set解决。 代码 阅读全文
posted @ 2020-03-24 18:56 WA自动机~ 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://icpc.njust.edu.cn/Problem/Hdu/1856/ 题目就是要求并查集中各树的大小的最大值,我们只要在根节点处存树的大小就可以,合并也是合并根节点的数,最后扫一遍即可。 代码如下: 1 #include<bits/stdc++.h> 2 using nam 阅读全文
posted @ 2020-03-24 17:31 WA自动机~ 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://icpc.njust.edu.cn/Problem/Hdu/1213/ 题目给定n个点和一些边,只要两点能通过某些边相连就相通。我们只要把所有的点连成一棵树就可以,一棵树有n-1条边,每次合并两棵树的时候边都会增加一条,我们只要知道合并的次数就可以知道已经有了多少条边,并查集 阅读全文
posted @ 2020-03-24 17:10 WA自动机~ 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://icpc.njust.edu.cn/Problem/Hdu/1213/ 并查集是一种支持合并与查找的数据结构,在森林中进行操作,加上路径压缩,合并和查找的时间复杂度几乎都是常数。并查集最基础的作用就是建立不同的点之间的所谓的“关系”,并且查询两者是否有关系。并查集的一个特点是 阅读全文
posted @ 2020-03-24 16:50 WA自动机~ 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://www.luogu.com.cn/problem/P2617 参考博客:https://blog.csdn.net/dreaming__ldx/article/details/80872728 在主席树的基础上实现单点更新也不困难,主要我们要明白主席树的函数性质,也就是一个 阅读全文
posted @ 2020-03-24 13:20 WA自动机~ 阅读(180) 评论(0) 推荐(0) 编辑