摘要: 题目链接:传送门 思路:求A到B之间必要的中间节点 条件:(1)只有一条路径经过中间节点;(low[B]>=num[u]&&num[v]<=num[B],没有从B到u的路径) (2)中间节点不能和A,B重合(u!=A&&num[v]<=num[B],先v后B) (3)中间节点一定是割点(num[u] 阅读全文
posted @ 2019-02-10 22:00 麟阁 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 题目链接:传送门 思路: (1)这道题的图可能不连通,所以需要多次Tarjan; (2)设置cut[i]=x数组表示第i个节点被删除后右多少个子图(这个只是在一个图中),如果是根节点就要-1,因为根节点都满足 num[v]==low[u]. (3)mx的初始值设为最小值(-9999999),因为有可 阅读全文
posted @ 2019-02-10 21:03 麟阁 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 题目链接:传送门 思路:找桥就行了,条件是num[v]<low[u],pre!=v; #include<iostream> #include<cstdio> #include<cstring> #include<vector> #include<algorithm> #include<stack> 阅读全文
posted @ 2019-02-10 17:20 麟阁 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 题目链接:传送门 思路: 就是求割点的个数,直接Tarjan算法就行。 注意输入格式(判断比较水)。 #include<iostream> #include<cstdio> #include<cstring> #include<vector> #include<string> #include<st 阅读全文
posted @ 2019-02-10 15:36 麟阁 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 题目链接:传送门 思路: 如果图是点双联通的,即没有割点,直接从图中随意选两个点即可; 如果有一个割点,删除割点,求连通块的个数即可(在每个连通块内新建一个营救点)。 如果有多个割点,则可以通过其他割点到达,就不用新建营救点。 #include<iostream> #include<cstdio> 阅读全文
posted @ 2019-02-10 14:56 麟阁 阅读(214) 评论(0) 推荐(0) 编辑