![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
tarjan算法
最菜的acmer
这个作者很懒,什么都没留下…
展开
-
POJ-1236(tarjan缩点)
题目大意:给最少多少个学校发送软件才能通关网络使得全部学校得到该软件,然后最少加多少条边使得该图变成强连通图 题解思路:求入度为0的缩点个数就是个学校发送软件的个数 然后加边最优的方法肯定是从出度为0的点出发连到入度为0 如果入度为0的点大于出度为0的点那么就要入度为都接起来并且入度为0的至少有一条边 如果出度为0的点大于入度为0的点那就把出度和入度都连起来并且出度为0的至少有一条边连题目链原创 2017-05-28 13:51:50 · 277 阅读 · 0 评论 -
POJ3694(tarjan缩点+并查集+LCA)
题目大意:在之前的图上面加一条边后剩下桥的数目。 题解思路:在缩点后一条边加完之后,那么两点和它们的最近公共祖先的点形成一个圈就是减少桥的数目,然后通过路径压缩把这两个点的到他们的最近公共祖先之间的点的父节点都压缩到最近公共祖先的点。 注意不要用vector容器保存否则会超时用邻接表题目链接#include<cstdio>#include<cstring>#include<algorithm原创 2017-06-07 21:28:40 · 549 阅读 · 0 评论 -
POJ-3177(tarjan缩点)
题目大意:至少加多少条边使得每两个点都有至少两种走法可以走 题解思路:利用tarjan缩点后找有几点只有一条边跟这个点跟它连接然后用最少的边把这些点都变成有两条边就ok. 如果不缩点那么如 6 7 1 2 1 3 2 3 3 4 4 5 4 6 5 6 这样理解的话就不用加边了题目链接#include<iostream>#include<cstring>#include<c原创 2017-06-08 23:55:36 · 238 阅读 · 0 评论 -
HDU - 4685(完美匹配构图+强连通)
题解:做这题前建议先去做poj1904他的题目已经是完美匹配了直接强连通算,然后这题难在构造完美匹配的图,如何构造呢?先求原始图的最大匹配cnt数然后加入m-cnt个王子匹配工作这些王子喜欢所有的公主然后加入n-cnt个公主这些公主被所有的王子喜欢然后再求一次完美匹配那么就是按poj1904的方法:如果王子(u)喜欢这个公主(v)就建一个u->v的有向边如果公主可以嫁给这个王子就连上v->u的有向边原创 2017-07-19 18:29:28 · 711 阅读 · 0 评论 -
POJ1904-强连通
题解:如果王子(u)喜欢这个公主(v)就建一个u->v的有向边如果公主可以嫁给这个王子就连上v->u的有向边图画出来后你会发现公主和王子如果是一个强连通的那么这个这个王子可以和这个强联通图里面的任意匹配而且这个图中的王子数量和公主数量一样然后如果这个王子喜欢这个公主并且在同一个强连通里面就可以加入答案#include<iostream>#include<algorithm>#include<cs原创 2017-07-19 18:31:06 · 342 阅读 · 0 评论 -
CF962F- Simple Cycles Edges (点双连通分量)
题解:我们判断是否是一个简单环,我们可以判断缩点然后之间经过了哪些边判断一下即可,注意一个很特殊的就是边如果点只有一个的话不是环,并且要求边数和点数相同才是一个环。#include<iostream>#include<cstring>#include<algorithm>#include<queue>#include<vector>...原创 2018-04-12 21:52:15 · 1003 阅读 · 0 评论