二分图判定 bfs版
来源:互联网 发布:优化产业布局 编辑:程序博客网 时间:2024/06/05 20:58
描述:给定一个具有n个顶点,要给图上的每个顶点染色,并且要求相邻的顶点的颜色不同,问 能否最多用2种颜色进行染色
//BFS 二分图 #include <cstdio>#include <iostream>#include <cstring>#include <queue>#include <vector>#define MAX_N 2005using namespace std;vector<int>G[MAX_N];int vis[MAX_N];void bfs(){memset(vis,0,sizeof(vis));int x = 1;//从顶点1 开始广搜 queue<int> q;q.push(x);vis[x] = 1;while(!q.empty()){x = q.front();q.pop();for(int i = 0; i < G[x].size(); i++){int y = G[x][i];if(vis[y] == 0){vis[y] = (vis[x] == 1 ? -1 : 1);q.push(y);}else {if(vis[y] == vis[x]){printf("No\n");return ;} }}}printf("Yes\n");return ;}int main(){int V,E;//V个点,E条边while(~scanf("%d %d", &V, &E)){for(int i = 1 ;i <= E ; i++){ int a,b;scanf("%d %d",&a,&b);G[a].push_back(b);G[b].push_back(a);} bfs();for(int i = 1; i <= V; i++)G[i].clear();}return 0;}
关于从那一个顶点开始bfs,只要顶点都存在,那么都可以当作开始的顶点进行bfs,无所谓
并没有上交OJ判定,自己写了组数据测试:input
5 5
1 2
1 5
2 3
2 4
3 5
output
Yes
1 0
- 二分图判定 bfs版
- 二分图的判定模板(dfs,bfs)
- uva 11396 Claw Decomposition(二分图判定 BFS)
- 二分图判定 DFS版
- p1403 二分+二分图判定
- 二分图判定
- 二分图判定
- 二分图的判定
- 二分图判定
- 二分图判定
- hihocorde:二分图判定
- 二分图判定
- 二分图判定
- 二分图判定
- 二分图的判定
- 二分图判定
- 二分图判定
- 二分图的判定
- web前端开发扫盲
- 用C++Qt 与libfcgi快速开发后台 WebService
- 编码灵魂(4)-依赖倒置原则
- 在同一台电脑机器上安装多个版本jdk,修改环境变量路径不生效的问题
- 单链表的快速排序
- 二分图判定 bfs版
- ViewUtils 扩展类问题
- 基于TCP(面向连接)的socket编程
- Windows下的taskkill的命令简介
- Content后台的获取为什么为空
- Vuforia用户自定义识别
- Rotate Array
- Java中的垃圾回收机制
- ubuntu14.04 编译caffe