图about连通性,简单路径,深搜,广搜。
来源:互联网 发布:网络尖兵软件下载 编辑:程序博客网 时间:2024/05/04 13:18
星期三又要考试啦,今天来复习下,嘿嘿~
图中两个顶点之间的简单路径
#include<stdio.h>#include<string.h>int m,n,a[100][100],v[100],s[100],top,ve,vb,flag;void dfs(){int i,j,temp;if(flag){if(s[top]==ve){for(j=1;j<=top;j++)printf("%d",s[j]);flag=0;}if(v[s[top]]==0){v[s[top]]=1;temp=s[top];for(i=1;i<=m;i++){if(v[i]==0&&a[temp][i]==1){s[++top]=i;dfs();//递归;top--;}}}}}//深搜;int main(){int i,j,k,p,q,b,cas=1;while(scanf("%d%d",&m,&n)!=EOF){memset(a,0,sizeof(a));for(i=0;i<n;i++){scanf("%d%d",&p,&q);a[p][q]=1;a[q][p]=1;}scanf("%d",&k);printf("Case %d:\n",cas++);while(k--){scanf("%d%d",&vb,&ve);top=1;s[top]=vb;memset(v,0,sizeof(v));//做标记;flag=1;dfs();printf("\n");}}}
图的连通性:
#include<stdio.h>#include<string.h>int m,n,a[100][100],s[100],top,z;void dfs(){int i,temp,v[100]={0};top=1;s[top]=1;while(top>0){if(v[s[top]]==0){v[s[top]]=1;temp=s[top];z++;for(i=1;i<=m;i++){if(a[temp][i]==1&&v[i]==0)s[++top]=i;}//找出连接的点。}else top--;}}//深搜;int main(){int i,p,q;while(scanf("%d%d",&m,&n)!=EOF){if(m==0&&n==0)break;memset(a,0,sizeof(a));for(i=0;i<n;i++){scanf("%d%d",&p,&q);a[p][q]=1;a[q][p]=1;}z=0;dfs();if(z==m)printf("Connected graph\n");else printf("Unconnected graph\n");}}
用的是图的深搜+累计搜到的点。
- 图about连通性,简单路径,深搜,广搜。
- 广搜记录路径
- hdu2717 简单广搜
- POJ1376简单广搜
- 广搜简单题
- 简单广搜:Nightmare
- bfs广搜:打印路径
- hdu2612 简单两次广搜
- POJ 3278 简单广搜
- POJ1426(简单广搜)
- POJ 3278(简单广搜)
- 简单广搜:Knight Moves
- Dice (简单广搜)
- 广搜 基础 走迷宫 记录路径
- HDU1026,广搜输出路径题
- 广搜之寻找最短路径
- codeforces-C. Journey(广搜+记录路径)
- 迷宫问题 (广搜+记录路径)
- Linux网络编程复习笔记
- jdbc获取各种数据库连接
- 学习robotium自动化有感
- Hibernate 鉴别器 遇到的一个SQLGrammerException
- Android中选项卡TabHost的基本使用
- 图about连通性,简单路径,深搜,广搜。
- [转]Java多线程--让主线程等待所有子线程执行完毕
- 浅谈EditPart的IEditorActionBarContributor
- 常见思想归纳
- Java主线程等待子线程执行完毕-CountDownLatch
- 浅谈MultiPageEditorActionBarContributor
- 跟着二厶学编程---序---自我介绍及编程的小小感悟
- Linux基础知识整理[4]——vi文本处理器
- android surfaceflinger研究----SurfaceFlinger loop