第一次用vector解得题,值得纪念,这道题是二染色问题,我用bfs解得,就是染色,判断,计数问题,其
实挺简单的,就是得判一下特殊情况,当n<2的时候就不能有解,因为题目要求每个组至少有一个人,当没有不认识的
人的时候就是一个组是n-1,另一个组人数为1
上代码:
?
#include
#include
#include
#include
#include
#include
using namespace std; int visit[100005]; int n,m,flag,ans1,ans2; vector
v[100005]; int bfs(int x) { queue
q; q.push(x); visit[x] = 1; while(!q.empty()) { int y = q.front(); q.pop(); if(visit[y] == 1) ans1++; else ans2++; for(int i=0; i
?
?