图论入门,连通图的深度优先遍历 dfs,HDOJ 1232 畅通工程
2011-11-24 22:21
260 查看
HDOJ 1232 畅通工程 参考代码;HDOJ 1213 How Many Tables 类似
#include<iostream> using namespace std; #define N 1000 #define MaxVal 999 int mat ; //邻接矩阵,mat[i][j]的值为1表示i到j有边,否则无边 int visited ; //标记数组,值0表示未访问,1表示已访问 int n; //顶点数 //连通图的dfs void dfs(int i) { int j; visited[i]=1; //标记起点已访问 for (j=0; j<n;j++) { if (visited[j]==0 && mat[i][j]==1) dfs(j); } } int run() { int i, j, m, x, y, cnt=0; scanf("%d", &n); if(n==0) return 0; scanf("%d", &m); for(i=0; i<n; i++) //初始化 { visited[i]=0; for(j=0;j<n;j++) { mat[i][j]=MaxVal; } } for(i=0; i<m; i++) //输入边 { scanf("%d%d", &x, &y); mat[x-1][y-1]=1; mat[y-1][x-1]=1; } for(i=0;i<n;i++) //对于每个点,若未访问过则由它出发进行dfs { if(visited[i]==0) { cnt++; //子图数加1 dfs(i); } } printf("%d\n", cnt-1); //要修的道路数是子图数减1 return 1; } int main() { while(run()); return 0; }
相关文章推荐
- 图论入门,Prim算法求最小生成树代价,HDOJ 1879 继续畅通工程
- 图论BFS DFS 列出连通集
- HDOJ 入门级深搜DFS 题目汇总,持续更新中,一路打怪升级
- HDOJ2571 DP入门题(DP+DFS)
- HDOJ 入门级深搜DFS 题目汇总(持续更新中),一路打怪升级
- 搜索入门(DFS)-Lake Counting(积水连通问题)
- 图论入门———深度优先搜索实现二分图判定(dfs染色)
- 数据结构之 图论---连通分量的个数(dfs搜索)
- HDOJ2102 深搜DFS解法+剪枝优化 入门题
- hdoj 1269 迷宫城堡 【强连通】&&【dfs】
- hdoj1501Zipper【dfs】
- 图论——dfs——xyoj1345: dfs
- hdoj 1455 Sticks 【dfs】
- HDOJ 题目A very hard Aoshu problem(暴力,DFS)
- ACM--DFS--最大碉堡数--HDOJ 1045--Fire Net
- 图论--连通二分图计数
- 图的深度优先遍历(DFS)
- HDOJ 题目1312 Red and Black(DFS)
- HDU 1141 入门DFS
- |Vijos|图论强连通分量|P1023 Victoria的舞会3