连通图
来源:互联网 发布:淘宝介入的原则 编辑:程序博客网 时间:2024/05/31 15:18
题目描述
判断一个图是否为一个边通图
输入
n 顶点 (n<=100)
边
51 22 3 5 40 0
输出
1 表示连通
0 表示不边通
0
思路
从1开始枚举每一个点,每走到一个点ans++
并把当前点标记起来,最后如果全部点都走过(ans==n)就是连通的
#include <stdio.h>using namespace std;int a[1001][1001];int f[10001];int n,ans=1;int dfs(int dep){ for (int i=1;i<=n;i++) if (f[i]==0&&a[dep][i]==1) { ans++; f[i]=1; f[dep]=1; dfs(i); }}int main(){ f[1]=1; scanf("%d",&n); int x,y; scanf("%d%d",&x,&y); while (x!=0&&y!=0) { a[x][y]=1; a[y][x]=1; scanf("%d%d",&x,&y); } dfs(1); if (ans==n) printf("1"); else printf("0"); return 0;}
bfs
#include <stdio.h>using namespace std;int a[1001][1001];int f[100001];int t[100001],n,ans=1;int bfs(){ int head=0,tail=1; t[1]=1; f[1]=1; while (head<tail) { head++; for (int i=1;i<=n;i++) { if (t[head]!=i&&a[t[head]][i]==1&&f[i]==0) { tail++; f[i]=1; t[tail]=i; ans++; } } }}int main(){ scanf("%d",&n); int x,y; scanf("%d%d",&x,&y); while (x!=0&&y!=0) { a[x][y]=1; a[y][x]=1; scanf("%d%d",&x,&y); } bfs(); if (ans==n) printf("1"); else printf("0");}
2 0
- 连通图
- 连通图
- 图连通
- 连通图
- 连通图
- 连通图
- 连通图
- 连通图
- 连通图
- 连通图
- 连通图
- 连通图
- 连通图和连通分量
- 判断强连通图、单向连通图、弱连通图
- 极大连通子图 + 极小连通子图 + 连通分量
- 连通图的强连通分支
- 连通图_连通分量FloodFill
- 图的连通
- 线上应用故障排查之一:高CPU占用
- jira scriptrunner的并行审批遇到的一点问题
- 推荐阅读书籍《亿级流量网站架构核心技术》目录一览
- 启动APK的默认Activity
- CentOS7.2安装Weblogic12c出现的问题
- 连通图
- jQuery鼠标事件汇总
- 搭建风控系统道路上踩过的坑03-阻断风险
- hdu2093考试排名
- nginx源代码分析 - 启动(五) 调试后台进程和worker进程
- 计算字宽
- 游戏直播哪家强?虎牙、斗鱼、熊猫三强App大PK
- Leetcode——ZigZagConversion
- 行内元素能否设置width,height,padding,margin