HDU5971 Wrestling Match(二分图染色)

题意: 给出比赛的人的标号, 以及x个好人y个坏人。询问是否能判断他是一个好人或者坏人。 给出的关系是否不存在矛盾,并且没有既是好人又是坏人。

思路:

训练的时候这题理解错了,一直没过。 补题发现可以是多个连通块,就是说可以分为m堆,只要每个堆里不存在矛盾关系,且每个人都出现过就可以。


#include 
#include 
#include 
using namespace std;
const int maxn=10005;
int go[maxn];
int vis[maxn];
int col[maxn];
int bad[maxn];
vectorvec[maxn];

int dfs(int u)
{
    go[u]=1;
    for(int i=0;i


你可能感兴趣的:(hdu,二分图&2-sat,acm)