HPU1250: HH的米5 【并查集】+【欧拉图】
2014-12-21 23:06
183 查看
1250: HH的米5
Time Limit: 1 Sec Memory Limit:128 MB
Submit: 90 Solved: 25
[Submit][Status][Web
Board] [Edit]
Description
HH新买了一台手机小米5,他给自己的新手机设置了一个高端大气上档次的屏幕保护锁(其实就是一个9宫锁屏),保护锁有一个特点,就是需要一笔画下来才能解锁,HH就在想,如果给定N个点和M条边,那么该图是否可以通过一笔将该图画下来呢?他想请你帮他写一个程序,判断一个图是否能够用一笔画下来。规定,所有的边都只能画一次,不能重复画。Input
第一行只有一个正整数T(T<=10)表示测试数据的组数。每组测试数据的第一行有两个正整数N,M(N<=1000,M<=2000),分别表示这个画中有多少个顶点和多少条连线。(点的编号从1到N)随后的M行,每行有两个正整数A,B(0<a,b<n),表示编号为a和b的两点之间有连线。< p="">Output
如果存在符合条件的连线,则输出"Yes", 如果不存在符合条件的连线,输出"No"。注意输出不包含引号!
Sample Input
2 4 3 1 2 1 3 1 4 4 5 1 2 2 3 1 3 1 4 3 4Sample Output
No YesHINT
Source
河南理工大学第五届ACM程序设计竞赛还好这题不吭
#include <stdio.h>
#include <string.h>
#define maxn 1010
int in[maxn], pre[maxn];
int ufind(int x) {
int a = x, b;
while (pre[x] != -1) x = pre[x];
while (a != x) {
b = pre[a];
pre[a] = x;
a = b;
}
return x;
}
bool unite(int x, int y) {
x = ufind(x);
y = ufind(y);
if (x == y) return false;
pre[x] = y;
return true;
}
int main() {
int T, n, m, u, v, i, cnt;
scanf("%d", &T);
while (T--) {
scanf("%d%d", &n, &m);
for (i = 0; i <= n; ++i) {
pre[i] = -1; in[i] = 0;
}
cnt = 0;
while (m--) {
scanf("%d%d", &u, &v);
if (!in[u]) ++cnt;
if (!in[v]) ++cnt;
++in[u]; ++in[v];
if (unite(u, v)) --cnt;
}
if (cnt != 1) {
printf("No\n");
continue;
}
cnt = 0;
for (i = 1; i <= n; ++i)
if (in[i] & 1) ++cnt;
if (cnt == 2 || cnt == 0)
printf("Yes\n");
else printf("No\n");
}
return 0;
}
/**************************************************************
Problem: 1250
User: changmu
Language: C++
Result: Accepted
Time:0 ms
Memory:824 kb
****************************************************************/
相关文章推荐
- 1250: HH的米5【并查集】+【欧拉回路】
- hpuoj 1250: HH的米5 (并查集)
- HPU 1250:HH的米5【欧拉回路】
- 10129 - Play on Words(*****)欧拉图,并查集
- hpu暑假训练D - How Many Tables 【并查集】
- HDU 1116 Play on Words 【并查集+欧拉图】
- HPU1280 迷上象棋的HH【DP】
- HPU图论专项(graph)【拓扑--二分图--最小生成树---树的直径---并查集--奇偶树---最小环---强联通】
- HPU:1232畅通工程(并查集)
- 分组背包dp+并查集 vijos1250
- HDU 1878 欧拉回路 【并查集+欧拉图】
- HPU1122 HH的随机数 【坑】
- hpuoj 1248: HH的军训 (容斥原理)
- vijos 1250 最勇敢的机器人 分组背包+并查集
- HPU 1280: 迷上象棋的HH【dp】
- HPU 1248: HH的军训【容斥原理】
- HPU1248: HH的军训 【容斥原理】
- HPU 1287: HH实习【数学】
- HPU 1122:HH的随机数
- POJ 2513 && NYOJ 230 Colored Sticks (并查集 && 字典树 && 欧拉图)