题意:有n个人,m场比赛,x个人为good player,y个人为bad player,

每场比赛两个人分分别为good和bad,问good和bad是否会冲突

1 ≤ N≤ 1000,1 ≤M ≤ 10000

思路:二分图

根据已有的点暴力遍历,判有没有冲突即可

并查集也能写,队友写的搜索

 #include <stdio.h>
#include <vector>
#include <algorithm>
#include <string.h>
#include <limits.h>
#include <string>
#include <iostream>
#include <queue>
#include <math.h>
#include <map>
using namespace std;
typedef long long int lint; const int MAXN = 1e3 + ;
const int MAXM = 1e4 + ; vector<int> g[MAXN];
queue<int> a,b; int n,m,x,y;
int color[MAXN]; void init(){
memset(color,-,sizeof(color));
for(int i = ; i <= n; ++i){ g[i].clear();}
while(!a.empty()){ a.pop();}
while(!b.empty()){ b.pop();}
} bool solve(){
while(!a.empty() || !b.empty()){
while(!a.empty()){
int now = a.front(); a.pop();
for(int i = ; i < g[now].size(); ++i){
if(color[g[now][i]] == -){
color[g[now][i]] = ; b.push(g[now][i]);
}else if(color[g[now][i]] == ){
return false;
}
}
}
while(!b.empty()){
int now = b.front(); b.pop();
for(int i = ; i < g[now].size(); ++i){
if(color[g[now][i]] == -){
color[g[now][i]] = ; a.push(g[now][i]);
}else if(color[g[now][i]] == ){
return false;
}
}
}
}
return true;
} int main(){
while(scanf("%d%d%d%d",&n,&m,&x,&y)!=EOF){
init();
for(int i = ; i <= m; ++i){
int u,v; scanf("%d%d",&u,&v);
g[u].push_back(v); g[v].push_back(u);
}
for(int i = ; i <= x; ++i){
int num; scanf("%d",&num); a.push(num); color[num] = ;
}
for(int i = ; i <= y; ++i){
int num; scanf("%d",&num); b.push(num); color[num] = ;
}
if(!solve()){
printf("NO\n"); continue;
}
bool flag = true;
for(int i = ; i <= n; ++i){
if(color[i] == - && g[i].size() != ){
a.push(i);
if(!solve()){
flag = false; break;
}
}else if(color[i] == - && g[i].size() == ){
flag = false; break;
}
}
if(!flag){
printf("NO\n"); continue;
}else{
printf("YES\n"); continue;
}
}
return ;
}

最新文章

  1. eclipse中Maven运行时报错: -Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match.
  2. Atitit Atitit 图像处理之&#160;&#160;Oilpaint油画滤镜 水彩画 源码实现
  3. 内核函数KiFastCallEntry
  4. Mac电脑AndroidStudio使用SVN进行版本控制
  5. [转载]深入理解JAVA的接口和抽象类
  6. react-native 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。
  7. CoreLocation MKMapView
  8. VS2008资源问题解决方法
  9. Catalog和Schema
  10. 常用的css
  11. go服务端----使用dotweb框架搭建简易服务
  12. 【Beta阶段】测试与发布
  13. 使用jQuery的一些建议
  14. ELK学习总结(4-1)elasticsearch更改mapping(不停服务重建索引)
  15. 使用CXF做简单的WebService例子
  16. 你不知道的CSS单位
  17. ECShop全系列版本远程代码执行高危漏洞分析+实战提权
  18. \Temporary ASP.NET Files\root\文件不断增长,如何处理?
  19. Mysql表类型(存储引擎)的比较
  20. 阿里云OSS 中文名称地址不对

热门文章

  1. IDEA设置每次打开重新选择项目
  2. 正确适配苹果ATS审核要求的姿势
  3. 配置Xcode的Device Orientation、AppIcon、LaunchImage
  4. Python3 简单封装 sqlite3 - SimpleToolSql
  5. How to Install Zabbix Server on Centos6.7
  6. 为PHPcms扩展json采集
  7. 使用laravel框架的eloquent\DB模型连接多个数据库
  8. GoF23种设计模式之行为型模式之访问者模式
  9. redis列表,字典,管道,vue安装,创建项目
  10. vagrant 安装ubuntu12.04 64 bit