HDU 4751 — Divide Groups
来源:互联网 发布:淘宝怎么改宝贝类目 编辑:程序博客网 时间:2024/05/18 00:21
原题:http://acm.hdu.edu.cn/showproblem.php?pid=4751
题意:
有n个人,下面n行;
表示第i个人认识的人,以0结束;
问能不能分成两个组,使得组内任意两个人相互认识;
思路:
用0和1表示两个组;
b[i]表示第i个人所属的组别;
如果两个人不认识,就是在不同的组;
#include<stdio.h>#include<queue>#include<string.h>#include<iostream>#include<algorithm>using namespace std;int n;bool map[110][110];int b[110];int bfs(int x){queue<int>q;q.push(x);while(!q.empty()){int u = q.front();q.pop();for(int i = 1;i<=n;i++){if(i == u || (map[i][u] && map[u][i]))continue;if(b[i] == -1){b[i] = b[u]^1;q.push(i);}else if(b[i] == b[u])return 1;}}return 0;}int main(){while(scanf("%d", &n)!=EOF){memset(map, false, sizeof(map));for(int i = 1;i<=n;i++){int x;scanf("%d", &x);while(x != 0){map[i][x] = true;scanf("%d", &x);}}memset(b, -1, sizeof(b));int i;for(i = 1;i<=n;i++){if(b[i] == -1){b[i] = 0;if(bfs(i))break;}}if(i>n)printf("YES\n");elseprintf("NO\n");}return 0;}
0 0
- HDU 4751 — Divide Groups
- HDU 4751 Divide Groups
- HDU-4751-Divide Groups
- HDU 4751 Divide Groups
- HDU:4751 Divide Groups
- HDU-4751 Divide Groups
- HDU 4751 Divide Groups
- hdu 4751 Divide Groups
- HDU 4751 Divide Groups
- hdu 4751——Divide Groups
- hdu 4751 Divide Groups 染色
- HDU 4751 — Divide Groups 交叉染色判二分图
- HDU 4751 Divide Groups (BFS)
- HDU-#4751 Divide Groups(2-SAT)
- HDU 4751 Divide Groups (二分图)
- HDU - 4751 Divide Groups(二分图)
- hdu 4751 Divide Groups (二分图判断)
- HDU 4751 Divide Groups 二分图判断
- Python 数据库试水 整理微博poiid及其对应的经纬度
- 开通小博客
- 深入了解C语言
- BZOJ 2751 [HAOI2012]容易题 数学
- Git
- HDU 4751 — Divide Groups
- java核心技术之顺序查找算法
- leetcode-205 Isomorphic Strings
- Android 多个APK数据共享
- hdu 1208(记忆化搜索)
- java核心技术之折半查找算法
- Android学习第一天--搭建开发环境
- 第九周项目一:复数类中的运算符重载(续)
- 第一次写博客