图的割边
来源:互联网 发布:coursera python 课程 编辑:程序博客网 时间:2024/04/30 08:30
//图的割边定义与图的割点类似,即去掉某条边之后,剩余的顶点之间不能相互之间到达,其实质就是将公式里的low[v]>=num[u]的等号去掉,因为"="说明能到
//父节点,而父节点是被去掉的(不包含在剩余的点里),所以哪怕“=”也成立,而割边就是连父节点都到不了,所以改成low[v]>num[u]
//另外值得注意的是在割点中,有一种特殊情况就是根节点之下只有一个子节点,这样不是割点,但它属于割边,所以不需要分类讨论~~
#include <stdio.h>
int a[101][101];
int n;
int num[101];
int low[101];
int index;
int min(int a,int b)
{
return a<b?a:b;
}
int dfs(int cur,int father)
{
int i;
index++;
num[cur]=index;
low[cur]=index;
for (i=1;i<=n;i++)
{
if (a[i][cur]==1)
{
if (num[i]==0)//如果还没有被访问过,说明是cur的子节点
{
dfs(i,cur);
low[cur]=min(low[i],low[cur]);//如果子节点的low小,说明子节点还与其他祖先节点相连
if (low[i]>num[cur])
printf("%d-%d\n",cur,i);
}
else if (i!=father)
low[cur]=min(low[cur],num[i]);//如果是祖先节点,那么更新num
}
}
return;
}
int main()
{
int i,m,j,x,y;
scanf("%d%d",&n,&m);
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
a[i][j]=0;
for (i=1;i<=m;i++)
{
scanf("%d%d",&x,&y);
a[x][y]=1;
a[y][x]=1;
}
dfs(1,1);
return 0;
}
//父节点,而父节点是被去掉的(不包含在剩余的点里),所以哪怕“=”也成立,而割边就是连父节点都到不了,所以改成low[v]>num[u]
//另外值得注意的是在割点中,有一种特殊情况就是根节点之下只有一个子节点,这样不是割点,但它属于割边,所以不需要分类讨论~~
#include <stdio.h>
int a[101][101];
int n;
int num[101];
int low[101];
int index;
int min(int a,int b)
{
return a<b?a:b;
}
int dfs(int cur,int father)
{
int i;
index++;
num[cur]=index;
low[cur]=index;
for (i=1;i<=n;i++)
{
if (a[i][cur]==1)
{
if (num[i]==0)//如果还没有被访问过,说明是cur的子节点
{
dfs(i,cur);
low[cur]=min(low[i],low[cur]);//如果子节点的low小,说明子节点还与其他祖先节点相连
if (low[i]>num[cur])
printf("%d-%d\n",cur,i);
}
else if (i!=father)
low[cur]=min(low[cur],num[i]);//如果是祖先节点,那么更新num
}
}
return;
}
int main()
{
int i,m,j,x,y;
scanf("%d%d",&n,&m);
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
a[i][j]=0;
for (i=1;i<=m;i++)
{
scanf("%d%d",&x,&y);
a[x][y]=1;
a[y][x]=1;
}
dfs(1,1);
return 0;
}
0 0
- 图的割点和割边
- 图的割点和割边
- 图的割点,割边
- 图的割边
- 图的割边
- 图的割点与割边学习笔记
- 无向连通图的割点与割边
- 图的割边、割点、块、缩点问题
- 图的割点与割边实现
- 图的割点和割边-裸题
- hdu 4738 图的割边
- 图的割边(代码)
- 图的割点
- 图的割点
- 图的割点
- 图的割点
- 连通图的割点、割边 连通图的割点、割边(桥)、块、缩点,有向图的强连通分量
- 无向图的割边,双连通||有向图的强连通,割边
- hdu 题目分类
- HDU oj Encodeing
- 详解Python中函数参数
- 杭电 1201 18岁生日
- HDU 1010 Tempter of the Bone
- 图的割边
- LintCode - Remove Duplicates from Sorted List
- poj3270--Cow Sorting(置换群)
- 默默重新开始,第一页也是新的一页
- 给定一个日期,输出这个日期是该年的第几天。 C语言来做
- 谷歌十戒
- HDU_1004 balloons
- 多线程知识
- python常用的GUI工具