基环树也可以直接套强连通缩点给秒了,但是事实上假如不需要缩点的话有更简单的写法。 下面是一种示例,必须是内向基环树,注意内向基环树的dfs上面有好几个时点: 0、进入环的时候,有时是从入度为0的点进入可能会有特殊操作,但是一般来说进入的时候主要是各个操作的初始化值。 1、当 color[u]!=0& ...
分类:
其他好文 时间:
2019-12-04 01:50:31
阅读次数:
93
有向图的强连通分量:两个点如果能够相互到达,那么称他们相互强连通。若一个有向图的所有点对都是相互强连通的,那么称之为强连通图。一个有向图的极大强连通子图称为该图的强连通分量。 无向图的割点/边:去掉该点/边之后无向图的连通性发生改变的点/边称为割点/边。 无向图的点/边双连通分量:若一个无向图不存在 ...
分类:
其他好文 时间:
2019-11-25 20:23:12
阅读次数:
73
题目链接: "HDU 1269" Problem Description 为了训练小希的方向感,Gardon建立了一座大城堡,里面有N个房间(N 输入包含多组数据,输入的第一行有两个数:N和M,接下来的M行每行有两个数a和b,表示了一条通道可以从A房间来到B房间。文件最后以两个0结束。 Output ...
分类:
其他好文 时间:
2019-11-21 22:52:33
阅读次数:
81
"Luogu P2515" 这道题的题面与P2146有点像。一些不同地方就是P2146是无环的,这题是有环的。 很显然,如果有几个软件的依赖关系形成环,那么这几个软件就可以被看成是一个大软件,其价值和空间都是原先的总和。 那么,我们就可以利用Tarjan算法求强连通分量+缩点,最后加一个树上的背包就 ...
分类:
其他好文 时间:
2019-11-11 15:37:01
阅读次数:
92
#include<map> #include<set> #include<cmath> #include<stack> #include<queue> #include<cstdio> #include<string> #include<vector> #include<cstring> #incl ...
分类:
编程语言 时间:
2019-11-10 15:42:59
阅读次数:
91
关于图的几个概念定义: 连通图:在无向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该无向图为连通图。 强连通图:在有向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该有向图为强连通图。 连通网:在连通图中,若图的边具有一定的意义,每一条边都对应着一个数,称为权;权代表着连接连个 ...
分类:
编程语言 时间:
2019-11-09 23:57:40
阅读次数:
195
"Luogu P2002" "Luogu P2341" 使用强连通分量算法缩点 第一题统计入度为0的个数强连通分量数。 第二题的答案为当且仅当仅有一个强连通分量的出度为0时该强连通分量的节点数,原因如下:若一个强连通分量出度为0,则说明这个强连通分量的喜爱无法对外传递;若有多个强连通分量出度为0,则 ...
分类:
其他好文 时间:
2019-11-08 22:35:57
阅读次数:
110
[算法模版]Tarjan爷爷的两种图论算法 前言 Tarjan爷爷发明了很多图论算法,这些图论算法有很多相似之处(其中一个就是我都不会)。这里会对这三种算法进行简单介绍。 定义 强连通(strongly connected) : 在一个有向图$G$里,设两个点$ a, b $发现,由$a$有一条路可 ...
分类:
编程语言 时间:
2019-11-04 15:35:03
阅读次数:
74
这里记录一下我 已经复习过的东西了 这次玩脱了 可就真的 回去了 要再认真一点。 第一个知识点:点双联通分量 先来一个点双联通分量 这几天 有模拟赛考这个了 但是我不太会写,qwq.类似于强连通分量的那种东西不过栈里要一直存一个割点。 值得一提的是 我把点双写成边双 写错好多次了这次下次一定不能错要 ...
分类:
其他好文 时间:
2019-11-04 09:57:42
阅读次数:
65
引入 连通图 在一个 无向图 $G$中,若从顶点$i$ 到顶点$j$有路径相连,则称 $i$和$j$是连通的。如果图中任意两点都是连通的,那么图被称作连通图。如果$G$是有向图,则称为强连通图(注意:需要双向都有路径)。如果是单向连通,则称$G$为单向连通图。 割点(关节点) 在无向连通图$G=(V ...
分类:
其他好文 时间:
2019-10-31 01:11:39
阅读次数:
154