tarjan
D_Bamboo_
我不懒,只是不知道填什么
展开
-
hdu4738——tarjan割边
hdu4738 题意 n个岛m座桥的无向图,每座桥上有若干个士兵,派出最少的士兵只炸毁一座桥,使得n个岛不连通(派出的士兵不能少于驻守的士兵,特别的改桥的驻守人数为0的时候要派一个士兵)。 思路 用tarjan算法,满足dfn[u] < low[v]的(u,v)就是割边,直接处理出来取最小值,这里还有一个问题就是有重边,所以要判断一下。 #include <bits/stdc++.h&...原创 2020-01-09 15:07:35 · 205 阅读 · 0 评论 -
hdu2767——tarjan强连通分量
hdu2767 题意 给n个点和m条有向边,求最少还需多少条边n个点构成强联通图。 思路 tarjan先处理出每一个强连通分量。 如果强连通分量的个数为1,则答案为0。 如果强连通分量的个数大于1,将每个强连通分量看成一个点,每个强连通分量之间可能存在边,a为没有出度的强连通分量的个数,b为没有入度的强连通分量的个数。则答案为max(a,b)(动手画下很容易得到)。 #include <bi...原创 2020-01-08 19:21:55 · 180 阅读 · 0 评论