shuoj_1559
来源:互联网 发布:java高级编程培训 编辑:程序博客网 时间:2024/06/15 09:27
1559: 无向图的连通分支
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 783 Solved: 451
[Submit][Status][Web Board]
Description
输入一个无向图G,计算G的连通分支数。
Input
有多个无向图数据。每个无向描述的第1行是两个整数n和e,分别表示顶点数和边数。接着有e行,每行有2个整数a、b,分别是一条边的两个端点(起点和终点)。两个图之间空一行。
Output
对每个无向图,输出图中连通分支个数。
Sample Input
2 11 25 81 21 31 41 52 32 43 44 5
Sample Output
11
2333 dfs遍历QWQ反正来看的大概率也是我们学校的苦命人2333
如果该点没被走过,那么dfs可以走遍该点可以到达的所有点,这些点是一个连通分支
进行几次dfs就有几个连通块 2333
/*************************************************************************> File Name: shuoj_1559.cpp> Author: > Mail: > Created Time: 2017年04月21日 星期五 02时02分55秒 ************************************************************************/#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<string>#include<vector>#include<set>#include<queue>#include<map>#include<sstream>#include<stack>#include<functional>#include<cctype>using namespace std;typedef long long ll;//thanks to pyf ...//thanks to lmd ...#define INF 0x3f3f3f3f#define N 10000struct Edge{ int u,v; int next;}edge[N*2];int n;vector<int>G[N];int head[N];int vis[N];int tot=0;int cnt = 0;void init(){ memset(head,-1,sizeof(head)); memset(vis,0,sizeof(vis)); for(int i=0;i<=n;i++) G[i].clear(); tot = 0;}void add_edge(int u,int v){ G[u].push_back(v);}void dfs(int u){ vis[u] = 1; for(int i=0;i<G[u].size();i++) { int v = G[u][i]; if(!vis[v]) dfs(v); }}int main(){ int m; while(scanf("%d%d",&n,&m)==2) { for(int i = 0;i<m;i++) { int u,v; scanf("%d%d",&u,&v); add_edge(u,v); add_edge(v,u); } cnt = 0; for(int i = 1;i<=n;i++) { if(!vis[i]) { dfs(i); cnt ++; } } if(m==0&&n==0) cnt = 1; cout << cnt << endl; }}
0 0
- shuoj_1559
- Brackets 编辑器 12 个有用的扩展插件
- 快速排序java实现
- Windows下Mongodb安装及配置
- 石头剪刀布
- 场景切换问题:如何切换到已经打开的场景
- shuoj_1559
- RFID实验二总结
- redis启动出错Creating Server TCP listening socket 127.0.0.1:6379: bind: No error
- 在JavaScript中使用document.getElementById()获取对象失败的原因
- Docker可视化管理工具Shipyard安装与配置
- Linux系统中“动态库”和“静态库”那点事儿 /etc/ld.so.conf 动态库的后缀为*.so 静态库的后缀为 libxxx.a ldconfig 目录名
- 三种方法让Response.Redirect在新窗口打开
- Python学习笔记(六)——面向对象编程
- WSL问题之32位程序运行