求连通图的割点

本文深入分析了图论算法在计算机科学领域的应用,包括深度优先搜索(DFS)、广度优先搜索(BFS)、最小生成树、最短路径算法等,并通过实例展示了这些算法在解决实际问题中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<iostream> #include<fstream> using namespace std; const int gray=1; const int white=0; const int black=2; const int v_num=10; const int start=0; int graph[v_num][v_num]; int color[v_num]; int Time; int discoverTime[v_num]; int rem=0; int bicompDFS(int v) { color[v]=gray; Time++; int back=discoverTime[v]=Time; for(int w=0;w<v_num;w++) { if(graph[v][w]==0) continue; if(color[w]==white) { if(v==start) rem++; int wBack=bicompDFS(w); if(wBack>=discoverTime[v]) { if(v==start&&rem<=1) ; else cout<<char(v+'A')<<"is articulation points"<<endl; } back=min(back,wBack); } else if(color[w]==gray) { back=min(discoverTime[w],back); } } color[v]=black; return back; } int main() { freopen("input.txt","r",stdin); //input graph // // char ch1,ch2; int i,j; for(int i=0;i<v_num;i++) { color[i]=white; for(int j=0;j<v_num;j++) graph[i][j]=0; } while(scanf("%c %c\n",&ch1,&ch2)!=EOF) //输入边 graph[ch2-'A'][ch1-'A']=graph[ch1-'A'][ch2-'A']=1; Time=0; bicompDFS(start); return 0; }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值