hdoj 5971
Wrestling Match
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 2539 Accepted Submission(s): 922
1 3
1 4
3 5
4 5
5 4 1 0
1 3
1 4
3 5
4 5
2
YES
1 #include <cstdio>
2 #include <iostream>
3 #include <cmath>
4 #include <cstring>
5 #include <algorithm>
6 #define ll long long
7 const int maxn = 1000+10;
8 using namespace std;
9 int mp[maxn][maxn];
10 int vis[maxn];
11 int n,m,x,y;
12
13 int ed=0; //ed==1的时候,说明该选手没有比赛,ed==2的时候,说明遇到两个同类型的选手在一起比赛,直接f=1,输出NO
14 void df(int a,int s)
15 {
16 int i=1;
17 if(ed) return;
18 for(i=1;i<=n;++i)
19 {
20 if(mp[a][i] && vis[i]!=s && vis[i]!=0)
21 {
22 ed=2;
23 // printf("\n%d %d\n",a,i);
24 break;
25 }
26 if(mp[a][i] && !vis[i])
27 {
28 vis[i]=s;
29 if(s==1)
30 df(i,2);
31 else
32 df(i,1);
33 }
34 }
35 if(i==n+1)
36 {
37 ed=1;
38 return;
39 }
40 }
41 int main() {
42
43 while(~scanf("%d%d%d%d",&n,&m,&x,&y))
44 {
45 memset(mp,0,sizeof(mp));
46 memset(vis,0,sizeof(vis));
47 int a,b;
48 for(int i=0;i<m;++i)
49 {
50 scanf("%d%d",&a,&b);
51 mp[a][b]=1;
52 mp[b][a]=1;
53 }
54
55 int f=0;
56
57 for(int i=0;i<x;++i)
58 {
59 scanf("%d",&a);
60 vis[a]=1;
61 ed=0;
62 df(a,2);
63 }
64
65 if(ed==2) f=1;
66
67 for(int i=0;i<y;++i)
68 {
69 scanf("%d",&b);
70 vis[b]=2;
71 ed=0;
72 df(b,1);
73 }
74
75 if(ed==2) f=1;
76
77 for(int i=1;i<=n;++i)
78 {
79 for(int j=1;j<=n;++j)
80 {
81 ed=0;
82 if(mp[i][j] && vis[i]==0 && vis[j]==0)
83 {
84 vis[i]=1;
85 df(i,2);
86 }
87 }
88 }
89
90 for(int i=1;i<=n;++i)
91 {
92 if(vis[i]==0)
93 {
94 f=1;
95 break;
96 }
97 }
98 if(!f)
99 printf("YES\n");
100 else
101 printf("NO\n");
102 }
103 return 0;
104 }
hdoj 5971的更多相关文章
- HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- HDOJ 2317. Nasty Hacks 模拟水题
Nasty Hacks Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
- HDOJ 1326. Box of Bricks 纯水题
Box of Bricks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- HDOJ 1004 Let the Balloon Rise
Problem Description Contest time again! How excited it is to see balloons floating around. But to te ...
- hdoj 1385Minimum Transport Cost
卧槽....最近刷的cf上有最短路,本来想拿这题复习一下.... 题意就是在输出最短路的情况下,经过每个节点会增加税收,另外要字典序输出,注意a到b和b到a的权值不同 然后就是处理字典序的问题,当松弛 ...
- HDOJ(2056)&HDOJ(1086)
Rectangles HDOJ(2056) http://acm.hdu.edu.cn/showproblem.php?pid=2056 题目描述:给2条线段,分别构成2个矩形,求2个矩形相交面 ...
- 继续node爬虫 — 百行代码自制自动AC机器人日解千题攻占HDOJ
前言 不说话,先猛戳 Ranklist 看我排名. 这是用 node 自动刷题大概半天的 "战绩",本文就来为大家简单讲解下如何用 node 做一个 "自动AC机&quo ...
- 最近点对问题 POJ 3714 Raid && HDOJ 1007 Quoit Design
题意:有n个点,问其中某一对点的距离最小是多少 分析:分治法解决问题:先按照x坐标排序,求解(left, mid)和(mid+1, right)范围的最小值,然后类似区间合并,分离mid左右的点也求最 ...
- BFS(八数码) POJ 1077 || HDOJ 1043 Eight
题目传送门1 2 题意:从无序到有序移动的方案,即最后成1 2 3 4 5 6 7 8 0 分析:八数码经典问题.POJ是一次,HDOJ是多次.因为康托展开还不会,也写不了什么,HDOJ需要从最后的状 ...
随机推荐
- SP338 ROADS
题目描述 城市中有R条有向马路,n个马路连接点,通过每条马路都要花去一定费用.你现在在编号为1的连接点 ,手里有k元钱,要去n号连接点的最短路径的长度是多少?途中经过道路的花费不能超过k.注意:两个 ...
- celery应用
celery---分布式任务队列 Celery是一个简单,灵活且可靠的分布式系统,可以处理大量消息,同时为操作提供维护该系统所需的工具. Celery是一个基于python开发的模块,可以帮助我们对任 ...
- 【9k字+】第二篇:进阶:掌握 Redis 的一些进阶操作(Linux环境)
九 Redis 常用配置文件详解 能够合理的查看,以及理解修改配置文件,能帮助我们更好的使用 Redis,下面按照 Redis 配置文件的顺序依次往下讲 1k 和 1kb,1m 和 1mb .1g 和 ...
- Linux磁盘的分区操作
1.Linux磁盘分区介绍 Linux磁盘分区主要有两种方式,一种是MBR,另一种是GPT.根据Linux磁盘分的大小,来选择一种分区方式. --MBR分区格式:最大支持 2 TB 的磁盘.--GPT ...
- C# 防止程序多开(重复开启)
Mutex(mutual exclusion,互斥)是 .Net Framework 中提供跨多个线程同步访问的一个类.它非常类似了 Monitor 类,因为他们都只有一个线程能拥有锁定.而操作系统能 ...
- 洛谷P6218
感觉此题是P4317 花神的数论题的变形版 Description 求一段区间内二进制中 \(0\) 的个数不小于 \(1\) 的个数的数的个数 Solution 数位 DP 先考虑状态转移方程式,如 ...
- valgrind和Kcachegrind性能分析工具详解
一.valgrind介绍 valgrind是运行在Linux上的一套基于仿真技术的程序调试和分析工具,用于构建动态分析工具的装备性框架.它包括一个工具集,每个工具执行某种类型的调试.分析或类似的任务, ...
- 在线安装mysql
http://www.cnblogs.com/wishwzp/p/7113403.html
- 用hyper-v创建虚拟机
1.新建虚拟机 1) 2) 3) 4)一般情况:linux选择第一代,Windows选择第二代 5) 6) 7) 8) 9) 10) 11)网卡设置:如果虚拟机和宿主机公用一块网卡,那么VLAN ID ...
- TCP/IP__TCP/IP协议
1.定位:指因特网整个TCP/IP协议族,由四个层次组成:网络接入层.网络层.主机到主机层.应用层.也叫DoD模型.每一层都呼叫它的下一层所提供的网络来完成自己的需求. 2.与OSI模型的对应: 3. ...