二分图的判断

hdu-5971 二分图的判断

题意:给出若干组参赛者的信息,每组中都有一个goog player和bad player,再给出确定为good player和bad player的序号,问这些参赛者是否可以分成good player和bad player两大类。

先从good player 和 bad player 开始深搜,搜完后从剩余人中深搜,在搜索过程中,如果遇到矛盾的情况直接输出NO,否则的话输出YES

#include 
#include 
#include 
#include 
#include 
using namespace std;
const int MAX_V = 1010;
int V,E;
int col[1010];///用来记录每位参赛者的信息(0:好坏信息未知,1:good player ,-1:bad player)
vector G[MAX_V];///邻接表来存参赛者之间的关系
int n,m,x,y;
int vis[1010];//记录每位参赛者在样例中的是否出现(0:未出现,1:出现)
bool dfs(int s,int c)
{
     col[s]=c;
     for(int i=0;i

你可能感兴趣的:(二分图)