摘要: 求最小生成树的算法——Kruskal 思路 :先把所有的边排个序,然后枚举所有的边(从小到大),如果当前边所连的两个点并没有在同一个集合里(这一可以用并查集来实现)(需要判断两个点是否已经连通,如果已经连通了,那么再用这条边连一遍就没有什么意义了),就连上这条边了。如果已经连了n - 1条边(n - 阅读全文
posted @ 2019-09-24 21:51 louis_11 阅读(259) 评论(0) 推荐(0)
摘要: 题库 :洛谷 题号 :2296 题目 :寻找道路 link :https://www.luogu.com.cn/problem/P2296 思路 :首先既然要满足第一个条件,我们可以建反向边,从起点出发走反向边,标记所能到达的点。没有被标记过的点就把他的父亲(谁到它的点)和它本身给标记为不可到达,然 阅读全文
posted @ 2019-09-17 18:47 louis_11 阅读(171) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2019-09-13 12:56 louis_11 阅读(4) 评论(0) 推荐(0)
摘要: 求LCA的算法——树上倍增 例题 : https://www.luogu.org/problem/P3379 算法: 首先我们能想出一种暴力算法:先把深度高的点跳到和深度低的点的同一层,然后他们俩一起往上跳,如果两个点相遇了,当前点就是他们的最近公共祖先。但可惜会超时,于是我们考虑一下优化。 优化: 阅读全文
posted @ 2019-09-05 21:48 louis_11 阅读(540) 评论(0) 推荐(0)
摘要: 例题: https://www.luogu.org/problem/P4782 算法: 算法所求问题: 这个算法主要是求有n个人,每个有m个要求,要求只可能是1或0的情况(及是或不是,要或不要......),且每个要求只需满足其一即可,求是否有可行的分配方案(当然,也可以求出那个可行的分配方案) 算 阅读全文
posted @ 2019-08-27 21:09 louis_11 阅读(864) 评论(0) 推荐(0)
摘要: question bank :luogu question Number :1640 title :Continuous attacking game link :https://www.luogu.org/problem/P1640 Solution : At first you may have 阅读全文
posted @ 2019-08-12 17:27 louis_11 阅读(254) 评论(0) 推荐(0)
摘要: 题库 :洛谷 题号 :2055 题目 :假期的宿舍 link :https://www.luogu.org/problem/P2055 首先明确一下:校内的每个学生都有一张床(只是校内的有) 思路 :分析题目发现是求所有在校学生能否全部有床睡(注意:只需在校学生有床睡,及不回家的;这个床可以是自己的 阅读全文
posted @ 2019-08-10 20:21 louis_11 阅读(256) 评论(0) 推荐(0)
摘要: 题库:洛谷 题号:3627 题目:抢掠计划 link:https://www.luogu.org/problem/P3627 思路 : 这道题是一道Tarjan + 最长路的题。首先,我们用Tarjan把每个强连通分量缩成一个点,并记录那个强连通分量的点权和(因为当那个人走进一个强连通分量后那个强连 阅读全文
posted @ 2019-07-29 15:42 louis_11 阅读(220) 评论(0) 推荐(0)
摘要: 读入输出优化 1 #define getchar() (p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 21, stdin), p1 == p2) ? EOF : *p1++) 2 char buf[1 << 21], *p1 = buf, *p2 阅读全文
posted @ 2019-07-22 16:07 louis_11 阅读(215) 评论(0) 推荐(0)
摘要: 求最小生成树算法——Prim 例题: https://www.luogu.org/problem/P3366 算法: 时间复杂度 : $O(n^2)$ 算法主体思想: $\text{Prim}$ 算法主要是用到贪心的思想,假设我们有两个集合 $A$ 和 $B$,$A$ 集合表示最小生成树集合(及 $ 阅读全文
posted @ 2019-07-20 13:49 louis_11 阅读(1052) 评论(0) 推荐(0)