题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5971

题意:有n个人,编号为1-n, 已知X个人是good,Y个人是bad,m场比赛,每场比赛都有一个good和一个bad人结合起来,问这n个人是否能被分成两种人

其实就是判断是否为二分图,用染色法判断一下就可以了

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <algorithm>
#include <bitset>
#include <iostream>
#include <time.h>
#include <vector>
#include <queue> typedef long long LL; using namespace std; const int N = ;
const double eps = 1e-;
const int INF = 0x3f3f3f3f;
const int mod = ;
const double PI = *atan(1.0); int a[N], b[N], f[N]; int main()
{
int n, m, X, Y, x;
while(scanf("%d %d %d %d", &n, &m, &X, &Y) != EOF)
{
memset(f, -, sizeof(f)); for(int i=; i<=m; i++)
scanf("%d %d", &a[i], &b[i]); for(int i=; i<=X; i++)
{
scanf("%d", &x);
f[x] = ;
}
for(int i=; i<=Y; i++)
{
scanf("%d", &x);
f[x] = ;
}
int flag = ;
for(int i=; i<=m; i++)
{
if(f[a[i]] == - && f[b[i]] == -)
f[a[i]] = , f[b[i]] = ;
else if(f[a[i]] != - && f[b[i]] == -)
f[b[i]] = f[a[i]]^;
else if(f[a[i]] == - && f[b[i]] != -)
f[a[i]] = f[b[i]]^;
else if(f[a[i]] == f[b[i]] && f[a[i]]!=-)
flag = ;
}
for(int i=; i<=n; i++)
{
if(f[i] == -)
flag = ;
}
if(flag) puts("NO");
else puts("YES");
}
return ;
}

Wrestling Match---hdu5971(2016CCPC大连 染色法判断是否是二分图)的更多相关文章

  1. 染色法判断是否是二分图 hdu2444

    用染色法判断二分图是这样进行的,随便选择一个点, 1.把它染成黑色,然后将它相邻的点染成白色,然后入队列 2.出队列,与这个点相邻的点染成相反的颜色 根据二分图的特性,相同集合内的点颜色是相同的,即 ...

  2. Catch---hdu3478(染色法判断是否含有奇环)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3478 题意:有n个路口,m条街,一小偷某一时刻从路口 s 开始逃跑,下一时刻都跑沿着街跑到另一路口,问 ...

  3. hdu 2444(染色法判断二分图+最大匹配)

    The Accomodation of Students Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ( ...

  4. 【交叉染色法判断二分图】Claw Decomposition UVA - 11396

    题目链接:https://cn.vjudge.net/contest/209473#problem/C 先谈一下二分图相关: 一个图是二分图的充分必要条件: 该图对应无向图的所有回路必定是偶环(构成该 ...

  5. 【01染色法判断二分匹配+匈牙利算法求最大匹配】HDU The Accomodation of Students

    http://acm.hdu.edu.cn/showproblem.php?pid=2444 [DFS染色] #include<iostream> #include<cstdio&g ...

  6. poj 2942 求点双联通+二分图判断奇偶环+交叉染色法判断二分图

    http://blog.csdn.net/lyy289065406/article/details/6756821 http://www.cnblogs.com/wuyiqi/archive/2011 ...

  7. hdu 5971 Wrestling Match 判断能否构成二分图

    http://acm.hdu.edu.cn/showproblem.php?pid=5971 Wrestling Match Time Limit: 2000/1000 MS (Java/Others ...

  8. A - Wrestling Match HDU - 5971

    Nowadays, at least one wrestling match is held every year in our country. There are a lot of people ...

  9. hdu 5971 Wrestling Match

    题目链接: hdu 5971 Wrestling Match 题意:N个选手,M场比赛,已知x个好人,y个坏人,问能否将选手划分成好人和坏人两个阵营,保证每场比赛必有一个好人和一个坏人参加. 题解:d ...

随机推荐

  1. java中集合的使用

    集合使用: 先说数组:array :用来存同一种数组类型的容器 eg:现在想把班上所有人的信息存起来 1.每一个人的信息可以用一个对象存起来 2.可以用一个数组来接受(现在数组中要接受的是对象) ob ...

  2. LeetCode之344. Reverse String

    ------------------------------- Java也可以实现一行代码反转字符串哦 AC代码如下: public class Solution { public String re ...

  3. Pyqt 动态的添加控件

    Pyqt 动态的添加控件 # -*- coding: utf-8 -*- from PyQt4.QtCore import * from PyQt4.QtGui import * import sys ...

  4. 【leetcode】Min Stack -- python版

    题目描述: Design a stack that supports push, pop, top, and retrieving the minimum element in constant ti ...

  5. 使用ajax.dll时js脚本错误-XXX未定义

    操作系统:Windows 7 IIS:7.5 ajax.dll现在用的比较少,但是以前的项目有这个,使用的时候很容易出现这个错误,因为总是会遗漏配置. 使用ajax.dll时,js脚本错误,无法调用后 ...

  6. Timer计时器

    private Timer timer; timer.schedule(new TimerTask() { @Override public void run() { if (isStopedReco ...

  7. 基于socket的客户端和服务端聊天简单使用 附Demo

    功能使用 服务端 分离一个不停接受客户端请求的线程 接受不客户端请求的线程中,再分离就收消息的线程 几大对象分别是 IPEndPoint IP终结点 服务端Socket,绑定终结点Bind,启动监听L ...

  8. UIView--震动效果

    //震动效果- (void)shake:(UIView *)view{ CGRect frame = view.frame; CAKeyframeAnimation *shakeAnimation = ...

  9. JS 之Blob 对象类型

    原文 http://blog.csdn.net/oscar999/article/details/36373183 什么是Blob? Blob 是什么? 这里说的是一种Javascript的对象类型. ...

  10. OOP: One pont of view of OOP与基于算法设计的区别

    ..摘自<C++网络编程 卷1:运用ACE和模式消除复杂性> <C++ Network Programming Volume 1 Mastering Complexity with ...