hdu 5971 Wrestling Match(队列)
来源:互联网 发布:全国网络平台监管系统 编辑:程序博客网 时间:2024/06/06 06:53
Wrestling Match
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 19 Accepted Submission(s): 13
Total Submission(s): 19 Accepted Submission(s): 13
Problem Description
Nowadays, at least one wrestling match is held every year in our country. There are a lot of people in the game is "good player”, the rest is "bad player”. Now, Xiao Ming is referee of the wrestling match and he has a list of the matches in his hand. At the same time, he knows some people are good players,some are bad players. He believes that every game is a battle between the good and the bad player. Now he wants to know whether all the people can be divided into "good player" and "bad player".
Input
Input contains multiple sets of data.For each set of data,there are four numbers in the first line:N (1 ≤ N≤ 1000)、M(1 ≤M ≤ 10000)、X,Y(X+Y≤N ),in order to show the number of players(numbered 1toN ),the number of matches,the number of known "good players" and the number of known "bad players".In the next M lines,Each line has two numbersa, b(a≠b) ,said there is a game between a and b .The next line has X different numbers.Each number is known as a "good player" number.The last line contains Y different numbers.Each number represents a known "bad player" number.Data guarantees there will not be a player number is a good player and also a bad player.
Output
If all the people can be divided into "good players" and "bad players”, output "YES", otherwise output "NO".
Sample Input
5 4 0 01 31 43 54 55 4 1 01 31 43 54 52
Sample Output
NOYES
Source
2016ACM/ICPC亚洲区大连站-重现赛(感谢大连海事大学)
题意:给你n个人,m场比赛,x个好人,y个坏人,对于每一场比赛,必有一个好人一个坏人,问是否能将n个人完全区分成好坏人。
思路:题意相当模糊,综合样例可以推测为不能有单独的人可以判成好坏人,那就很好做了,首先对已给的人对比赛进行推测区分出一些人,对无法区分的人,随便给个属性进行递推,唯一注意的就是对单独的人又没给出属性的情况下可以直接判断no.这题没什么好说的,水题罢了,若是wa了,必定是姿势不对,若是tle了,那是链式前向星的数组开小了。
代码:
题意:给你n个人,m场比赛,x个好人,y个坏人,对于每一场比赛,必有一个好人一个坏人,问是否能将n个人完全区分成好坏人。
思路:题意相当模糊,综合样例可以推测为不能有单独的人可以判成好坏人,那就很好做了,首先对已给的人对比赛进行推测区分出一些人,对无法区分的人,随便给个属性进行递推,唯一注意的就是对单独的人又没给出属性的情况下可以直接判断no.这题没什么好说的,水题罢了,若是wa了,必定是姿势不对,若是tle了,那是链式前向星的数组开小了。
代码:
#include<bits/stdc++.h>using namespace std;const int maxn=1111;struct node{ int u,v,next;}edge[maxn*10*2];struct E{ int w,id;};queue<E>q;int head[maxn],cnt,vis[maxn];void addedge(int u,int v){ edge[cnt].u=u;edge[cnt].v=v;edge[cnt].next=head[u];head[u]=cnt++; edge[cnt].u=v;edge[cnt].v=u;edge[cnt].next=head[v];head[v]=cnt++;}int main(){ int T; int n,m,x,y; while(scanf("%d%d%d%d",&n,&m,&x,&y)!=EOF) { cnt=0; memset(head,-1,sizeof(head)); memset(vis,-1,sizeof(vis)); for(int i=0;i<m;i++) { int c,d; scanf("%d%d",&c,&d); addedge(c,d); } int xx; E a; int flag=0; while(!q.empty()) q.pop(); for(int i=0;i<x;i++) { scanf("%d",&xx); a.w=xx; a.id=0; vis[xx]=0; q.push(a); } for(int i=0;i<y;i++) { scanf("%d",&xx); vis[xx]=1; a.w=xx; a.id=1; q.push(a); } while(!q.empty()) //有给出的好坏人去区分比赛中的好坏人。 { a=q.front();q.pop(); int u=a.w,id=a.id; for(int i=head[u];i!=-1;i=edge[i].next) { int v=edge[i].v; if(vis[v]==-1) { vis[v]=!vis[u]; a.w=v; a.id=vis[v]; q.push(a); } else if(vis[v]==vis[u]) { flag=1; break; } } } if(!flag) for(int i=1;i<=n;i++) //无法区分的好坏人,先判断是否是独立的个体,是则直接no,否则任意标记一个属性,进行再一轮推断。 { if(vis[i]==-1) { if(flag) break; if(head[i]==-1) { flag=1;break; } vis[i]=0; a.w=i; a.id=0; q.push(a); while(!q.empty()) { a=q.front();q.pop(); int u=a.w,id=a.id; for(int j=head[u];j!=-1;j=edge[j].next) { int v=edge[j].v; if(vis[v]==-1) { vis[v]=!vis[u]; a.w=v; a.id=vis[v]; q.push(a); } else if(vis[v]==vis[u]) { flag=1; break; } } } } } if(flag) printf("NO\n"); else printf("YES\n"); } return 0;}
1 0
- hdu 5971 Wrestling Match(队列)
- hdu 5971 Wrestling Match
- HDU 5971 Wrestling Match
- hdu 5971 Wrestling Match
- hdu 5971Wrestling Match
- HDU 5971 Wrestling Match(dfs)
- HDU 5971 Wrestling Match(深搜)
- HDU 5971 Wrestling Match(染色体法判断二分图)
- HDU 5971 Wrestling Match (二分图匹配)
- HDU 5971 Wrestling Match(二分图着色)
- HDU 5971 Wrestling Match(二分图染色)
- 文章标题 HDU 5971 : Wrestling Match (2-sat)
- hdu 5971 Wrestling Match(二分图判断)
- HDU 5971 icpc 大连 A Wrestling Match
- HDU 5971 Wrestling Match(染色+暴力)
- -----染色问题 hdu 5971-Wrestling Match
- 【HDU】5971-Wrestling Match 二分染色
- hdoj 5971 Wrestling Match
- Android 解决WebView支持WebGL的兼容性问题
- XML中DTD介绍及使用
- 简单的学生信息处理程序实现
- android关闭日志
- C++继承:公有,私有,保护
- hdu 5971 Wrestling Match(队列)
- 将字符存储到带有头结点的单向链表中
- 算法-动态规划
- 动态Fragment 切换
- 1951: [Sdoi2010]古代猪文
- 1106
- Codeforces 710E Generate a String【dp】好题!
- 编译连接的整个过程和详细的每个过程
- 用view画圈带字