随笔分类 -  (图论)连通图

摘要:题目链接: H - Rescue the Princess ZOJ - 4097 学习链接: zoj4097 Rescue the Princess无向图缩点有重边+lca - lhc..._博客园 题目大意: 首先是T组测试样例,然后是n个点,m条双向边。然后给你u,v,w。问你v和w是否能够到达 阅读全文
posted @ 2019-04-17 21:48 Let_Life_Stop 阅读(610) 评论(0) 推荐(0)
摘要:题目链接: D - Coconuts HDU - 5925 题目大意:首先是T组测试样例,然后给你n*m的矩阵,原先矩阵里面都是白色的点,然后再输入k个黑色的点。这k个黑色的点可能会使得原先白色的点分成多个联通块,然后问你白色联通块的个数和每一个连通块里面白色的点的个数。 具体思路:输入的点坐标比较 阅读全文
posted @ 2019-04-16 14:48 Let_Life_Stop 阅读(453) 评论(0) 推荐(0)
摘要:题目链接:https://cn.vjudge.net/problem/ZOJ-3795 题目大意:给你n个人,m个关系, 让你对这个n个人进行分组,要求:尽可能的分组最少,然后每个组里面的人都没有关系。 具体思路:首先对年龄相同的人进行缩点,这些人是肯定不能在同一个组里面的。然后缩完点之后找出剩下的 阅读全文
posted @ 2019-03-15 19:26 Let_Life_Stop 阅读(235) 评论(0) 推荐(0)
摘要:题目链接:https://cn.vjudge.net/problem/POJ-1904 自己一开始的想法,打算用匈牙利算法实现,找二分图的最大匹配。但是打了打发现,不太好实现。原因如下:匈牙利算法是不停的找增广路。如果这个题用匈牙利算法实现的时候,就是这个地方: ,这个是找到合法的就返回,无法把所有 阅读全文
posted @ 2018-11-29 17:50 Let_Life_Stop 阅读(199) 评论(0) 推荐(0)
摘要:题目链接:https://cn.vjudge.net/contest/67418#problem/G 具体思路:首先用tarjan缩点,这个时候就会有很多个缩点,然后再选取一个含有点数最少,并且当前这个点的出度和入度至少有一个为0,这个原因后面解释。然后选出最少的点 t1 后,当前的图就可以看成两个 阅读全文
posted @ 2018-11-28 16:07 Let_Life_Stop 阅读(366) 评论(0) 推荐(0)
摘要:题目链接:https://vjudge.net/contest/67418#problem/F 题目大意:给你一个图,让你加一条边,使得原图中的桥尽可能的小。(谢谢梁学长的帮忙) 我对重边,tarjan算法中的各个数组的作用,以及需要哪些数组,还有一些不可取的地方。 重边:原来一直以为无向图没有重边 阅读全文
posted @ 2018-11-26 17:31 Let_Life_Stop 阅读(270) 评论(0) 推荐(0)
摘要:题目链接:https://vjudge.net/problem/POJ-3694 具体思路:首先可以通过缩点的方式将整个图变成一个树,并且树的每条边是桥,但是我们可以利用dfn数组将整个图变成树,这样就可以省去缩点的过程了,同时lca的作用。假设有如下情况。 f->a f->b,这是缩点之后的,如果 阅读全文
posted @ 2018-11-23 17:47 Let_Life_Stop 阅读(251) 评论(0) 推荐(0)
摘要:题目链接:https://cn.vjudge.net/problem/UVA-796 顺便总结一下,对于连通图的桥和割点。 首先,从tarjan的角度来说,dfn数组代表的是当前节点的编号,也就是时间戳,low数组代表的是当前节点能够到达的最早的时间戳(一定要注意是时间戳)。打个比方,1->2->3 阅读全文
posted @ 2018-11-21 19:51 Let_Life_Stop 阅读(565) 评论(0) 推荐(0)
摘要:题目链接:https://vjudge.net/contest/67418#problem/B 具体思路:对根节点,也就是起点,单独判断左右子树的个数,如果大于等于二的话,那么就是割点。对于与其他点,就判断它最早能达到的点,如果能达到的点大于它的时间割,那么它就是割点。 AC代码: 阅读全文
posted @ 2018-10-20 16:21 Let_Life_Stop 阅读(494) 评论(0) 推荐(0)
摘要:第一个,染色后求入度为0的联通块。 第二个,染色后求入度为0的联通块和出度为0的联通块的最大值。//入度和出度是对联通块说的。 AC代码: 阅读全文
posted @ 2018-10-19 21:51 Let_Life_Stop 阅读(324) 评论(0) 推荐(0)
摘要:题目链接:https://cn.vjudge.net/contest/247936#problem/C 具体大意:给你起点和中点,总点数,边数。求到终点的最小割点。 具体思路:可以用tarjan算法来求割点,不过还有一种比较朴素的求法。假设一共有五个点,起点是1,终点是5.我们可以先将除起点和终点之 阅读全文
posted @ 2018-08-18 19:40 Let_Life_Stop 阅读(141) 评论(0) 推荐(0)
摘要:题目链接:https://cn.vjudge.net/contest/247936#problem/C 具体大意:给你起点和中点,总点数,边数。求到终点的最小割点。 具体思路:可以用tarjan算法来求割点,不过还有一种比较朴素的求法。假设一共有五个点,起点是1,终点是5.我们可以先将除起点和终点之 阅读全文
posted @ 2018-08-18 19:40 Let_Life_Stop 阅读(210) 评论(0) 推荐(0)
摘要:题目链接: https://cn.vjudge.net/contest/66569#problem/H 题目大意: n代表母牛的个数,m代表给定的信息的组数。每一组数包括a,b. 代表b崇拜a(突然发现可以用tarjan算法做)。然后问你最终有多少母牛的地位是确定的。 代码: 阅读全文
posted @ 2018-08-01 10:34 Let_Life_Stop 阅读(223) 评论(0) 推荐(0)
摘要:E - Reachability from the Capital CodeForces - 999E E - Reachability from the Capital CodeForces - 999E E - Reachability from the Capital 题目链接:https:/ 阅读全文
posted @ 2018-07-04 00:17 Let_Life_Stop 阅读(194) 评论(0) 推荐(0)
摘要:tarjan算法求图中的强连通子图的个数。 tarjan算法缩点运算的使用具体事例 题目链接:http://poj.org/problem?id=2186 具体大意:假设有三头公牛a,b,c。a仰慕b,b仰慕c,那么这个c就是剩下的所有公牛的仰慕对象,然后这个题就是让你算出符合条件的公牛一共有多少头 阅读全文
posted @ 2018-07-01 17:35 Let_Life_Stop 阅读(293) 评论(0) 推荐(0)