数学联邦政治世界观
超小超大

割点

对于一个无向图,如果把一个点删除后这个图的极大连通分量数增加了,那么这个点就是这个图的割点(又称割顶)。

换句话说,如果删除某个顶点后,导致图不再连通,那么刚才删除的顶点就是割点。

1、4、3、2、6、5

如果顶点U的所有孩子顶点可以不通过父顶点U而访问到U的祖先顶点,那么说明此时去掉顶点U不影响图的连通性,U就不是割点。相反,如果顶点U至少存在一个孩子顶点,必须通过父顶点U才能访问到U的祖先顶点,那么去掉顶点U后,顶点U的祖先顶点和孩子顶点就不连通了,说明U是一个割点。

即判断割点的方法是:对于某个顶点u,如果至少存在一个顶点v(u的儿子),使得loωυ>=dfnᵤ ,即不能回到祖先,那么u点为割点。

这里我们还需要考虑一个特殊情况,就是DFS的根顶点(一般情况下是编号为0/1的顶点),因为根顶点没有祖先顶点。其实根顶点是不是割点也很好判断,如果从根顶点出发,一次DFS就能访问到所有的顶点,那么根顶点就不是割点。反之,如果回溯到根顶点后,还有未访问过的顶点,需要在邻接顶点上再次进行DFS,根顶点就是割点。

求解割点,对Tarjan算法

其中st[i]为1的点为割点

void Tarjan(int u,int p){

int son=0;

dfn[u]=low[u]=++dfncnt;

for(auto i:g[u]){

if(!dfn[i]){

son++;

Tarjan(i,u);

low[u]=min(low[u],low[i]);

if(p!=-1&&low[i]>=dfn[u]){

st[u]=1;

}

}else if(i!=p){

low[u]=min(low[u],dfn[i]);

}

}

if(p==-1&&son>1)st[u]=1;

};

割边

对于一个无向图,如果删掉一条边后图中的连通分量数增加了,则称这条边为桥或者割边。

即在一个无向图中删除某条边后,图不再连通,这个边就是割边。

割点与桥(割边)的关系:

1)有割点不一定有桥,有桥一定存在割点(从判定方式也可以发现)

2)桥一定是割点依附的边。

6、7、1、2、3、5、4

判断割边的方式和割点差不多:对于某个顶点u,如果有loωυ>=dfnᵤ ,那么u-v为桥求解割边时和是不是根节点无关

割点集和割边集都是通过Tarjan算法求得,无论通过哪个点开始都可以

void Tarjan(int u, int p) {

low[u] = dfn[u] = ++dfncnt;

for (auto v:g[u]) {

if (!dfn[v]) {

Tarjan(v, u);

low[u] = min(low[u], low[v]);

if (low[v]>dfn[u]) {

ans.push_back({v,u});//v,u为割边

++cnt;

}

} else if (dfn[v]<dfn[u] && v != p) {

low[u] = min(low[u], dfn[v]);

}

}

}

数学联邦政治世界观提示您:看后求收藏(笔尖小说网http://www.bjxsw.cc),接着再看更方便。

相关小说

(科幻万人迷)渣女改造系统 连载中
(科幻万人迷)渣女改造系统
吃人不放盐23
—这是一个社会潜在型人渣,被一个莫名奇妙的系统培养成社会栋梁最后成神的故事—林一览一直都知道自己不是个好东西,但从来没有想过,自己会因为渣得......
1.7万字2个月前
十二星座:方寸死斗 连载中
十二星座:方寸死斗
简思达江斯特
〖星座文内含cp向注意避雷〗因为杀死所爱之人而被困在噩梦里无法解脱这一次,饱受折磨的少年做了变成女孩子的梦(有刀哈,心理承受能力较差的老婆酌......
1.6万字2个月前
你好,大妖 连载中
你好,大妖
这条小鱼在乎捏
我是一个半人半妖的妖怪我出生就被诅咒过所以我父母就不要我了丢给了我师傅白泽但是师傅说以后会一只大妖叫乘黄的非常爱我爱我?为什么也要丢下我?
0.8万字2个月前
索罗特尔奥特曼 连载中
索罗特尔奥特曼
风起银河下
我是索罗特尔,不要为我的名字害怕贝利亚应该可能大概是我爹捷德应该可能大概是我哥。放心,我不会乱揍人(我揍的都不是人)(故事架空世界线,不喜勿......
1.9万字2个月前
浮生若梦云生惊蛰 连载中
浮生若梦云生惊蛰
曷月予还归哉
整一个故事架构和时间跨度巨大,日更的话需要很久,请各位读者耐心轮回之内轮回之外,革新与守旧,天命与人力樱花当自由盛开,也当自由凋零,投身烈火......
120.9万字2周前
不是向阳花 连载中
不是向阳花
听音不见仙
女主:薛茗
0.7万字2周前