题意:求图中的连通块数,注意孤立的算自连通!

例如:6个顶点3条路径,其中路径为:1->2    4->5  1->3

那么有(1-2&&1->3) + (4->5) + (6) 共3个连通块!

解法:对每个节点宽搜!

 #include<iostream>
#include<memory.h>
#include<queue> using namespace std; bool roads[][];
bool visited[];
int N,M; int main(){ cin >>N >>M;
memset(roads,,sizeof(roads));
memset(visited,false,sizeof(visited));
int from,dest;
for(int i=; i<=M; i++){
cin >> from >> dest;
roads[from][dest] = true;
roads[dest][from] = true;
} queue<int> check;
int num = ;
int cnt = ;
int i;
//breadth-frist search
while(num != N){
for( i=; i<=N;i++){
if(visited[i]== false){
check.push(i);
visited[i]= true;
num++;
cnt++;
break;
}
}
while(!check.empty()){
i = check.front();
for(int j = ; j<=N;j++){
if(roads[i][j] == true && visited[j] == false){
check.push(j);
visited[j] = true;
num++;
}
}
// erase the front node
check.pop();
}
}
cout << cnt <<endl;
return ;
}

最新文章

  1. C# 与 SQLite的操作
  2. Diamond使用向导
  3. Filestream读取或写入文件
  4. (hzau)华中农业大学第四届程序设计大赛网络同步赛 G: Array C
  5. contiki-main.c 一 打印观察 &lt;contiki学习之五&gt;
  6. 【几何模板加点小思路】hdu-4998 Rotate
  7. 函数可重入问题reentrant functions(函数执行过程中可以被中断,允许多个副本)
  8. Hive 4、Hive 的安装配置(远端MyMql模式)
  9. ASP.NET MVC5 学习笔记-5 测试
  10. bzoj4800 [Ceoi2015]Ice Hockey World Championship
  11. 微信小程序实现滚动加载更多
  12. 自动红眼移除算法 附c++完整代码
  13. Android:JNI与NDK(一)
  14. VM安装centos7
  15. Linq To Xml操作XML增删改查
  16. Jackson将对象转换为json字符串时,设置默认的时间格式
  17. 【22】访问者模式(Visitor Pattern)
  18. python基础(五)——CGI编程
  19. WPF Demo13通知项属性+数据绑定(代码层)
  20. CURLOPT_HEADER

热门文章

  1. 使用 Spring 2.5 基于注解驱动的 Spring MVC--转
  2. [转] The Single Biggest Obstacle to Trading Success
  3. js正则表达式中的问号使用技巧总结
  4. Android组件间的数据传输
  5. php long time(1)
  6. maven第7章生命周期和插件
  7. android 广播分类
  8. VS2013默认快捷键
  9. CentOS 5.5 Samba服务器安装总结
  10. WCF理论 【转载】