摘要: Kruskal算法 图的最小生成树的算法之一,运用并查集思想来求出最小生成树。 基本思路就是把所有边从小到大排序,依次遍历这些边。如果这条边所连接的两个点在一个连通块里,遍历下一条边,如果不在,就把这条边加入连通块,这样就可以保证生成树的边权最小。 我们使用并查集来判断两个点是否在同一个连通块里,如 阅读全文
posted @ 2017-05-07 09:01 江屿 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 松鼠的新家 洛谷链接 尽管标签是省选/NOI-,但提交的通过率已经高到三分之一了。 但它仍旧是一个省选/NOI-的题。 大致题意就是按输入的顺序走一棵树,看每个节点经过多少次。问题就相当于把一条链上的所有节点权值都加一,最后统计每个点的权值。 但这样的时间复杂度比较高,所以我们可以把这条链的头节点和 阅读全文
posted @ 2017-05-06 16:42 江屿 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 仓鼠找sugar 洛谷链接 一道提高+/省选-的题目,终于可以提高博客题目的平均难度了。。。 大致题意就是在一棵树上有两条路径,询问这两个路径是不是可以相交。 而如果两条路径相交的话,一定有一条路径a两端点的LCA在另一条的路径上,我们可以通过求路径a的LCA是不是在路径b上来求出a与b是不是相交的 阅读全文
posted @ 2017-05-06 16:07 江屿 阅读(314) 评论(0) 推荐(2) 编辑
摘要: Meet 紧急集合 这个题是在脖子oj(清北某奆佬给起的名字)八中oj(大视野在线评测)上的。 给出bzoj链接。 这个题还是求最近公共祖先的问题。 而该题不同于别的题,它是需要求三个点的最近公共祖先。 我们就需要求出三个点两两之间的LCA。 而这三个LCA之间,必有两个是相同的。 如果两个点相同, 阅读全文
posted @ 2017-05-06 10:15 江屿 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 树链剖分求LCA 树链剖分需要将树的边分为重边和轻边。每个节点和他的儿子之间只能有一条重边,连接着该节点与他儿子中子树节点最大的一个。一系列连续起来的重边叫做重链,重链上的每个点的top值都是重链的顶端节点。 用树链剖分来求LCA,就需要每次比较top_x与top_y的深度,将深度较大的点变为top 阅读全文
posted @ 2017-05-05 21:10 江屿 阅读(1056) 评论(0) 推荐(2) 编辑
摘要: 倍增法求LCA LCA(Least Common Ancestors)的意思是最近公共祖先,即在一棵树中,找出两节点最近的公共祖先。 倍增法是通过一个数组来实现直接找到一个节点的某个祖先,这样我们就可以在O(logn)的时间内求出求出任意节点的任意祖先。 然后先把两个节点中转化为深度相同的节点,然后 阅读全文
posted @ 2017-05-05 17:43 江屿 阅读(1474) 评论(1) 推荐(0) 编辑
摘要: 医院设置 又是一道水题。 洛谷链接。 洛谷上的数据特别水,o(n^3)都能过。 当然,我是不会用那种暴力枚举的方法的。 这里要讲的是一种O(n)的做法,对于洛谷那五个数据点,会实现5个0ms。 大家可以先看一下博客——树的直径及重心,直径没必要看,主要是看重心的求法。 而这里用的是加权重心,比重心更 阅读全文
posted @ 2017-05-05 11:43 江屿 阅读(423) 评论(0) 推荐(2) 编辑
摘要: 联合权值 然而这只是一道普及+/提高的大水题 洛谷链接 这道题是2014年提高组day1的第二题。 简单题意就是在树上每个点都有权值,相邻两点的距离为1,求距离为2的点的权值乘积的和以及最大值。 基本思路就是遍历整棵树,然后找到距离该点距离为2的点,计算距离,更新最大值和乘积和。 但这样就很慢了。所 阅读全文
posted @ 2017-05-05 09:41 江屿 阅读(256) 评论(3) 推荐(2) 编辑
摘要: 1.树的直径 树上最长的简单路径即为树的直径。 求树的直径的方法就是在树上任选一点u,求距离点u最远的点y,再求距离点y最远的点s,点y到点s的距离即为树的直径。 1 #include<cstdio> 2 #include<cstring> 3 #define N 4200 4 struct heh 阅读全文
posted @ 2017-05-04 21:05 江屿 阅读(4107) 评论(1) 推荐(5) 编辑
摘要: 图的存储方式 1.邻接矩阵 邻接矩阵的二维数组表示第i个点到第j个点的权值为dis[i][j]。 实现容易,但时空复杂度都比较大,时间复杂度为O(n*n),空间复杂度为O(n*n)。 适合稠密图。 下为代码: 1 #include<cstdio> 2 #define N 4200 3 int vis 阅读全文
posted @ 2017-05-04 18:45 江屿 阅读(263) 评论(0) 推荐(1) 编辑