hrbust 1658,哈理工oj 1658 一笔画【并查集过】
来源:互联网 发布:淘宝怎么直播不了 编辑:程序博客网 时间:2024/04/30 10:23
一笔画Time Limit: 1000 MSMemory Limit: 32768 KTotal Submit: 55(22 users)Total Accepted: 18(18 users)Rating: Special Judge: NoDescription判断一个图是否能够用一笔画下来.规定,所有的边都只能画一次,不能重复画。Input
第一行只有一个正整数N(N<=10)表示测试数据的组数。
每组测试数据的第一行有两个正整数P,Q(P<=100,Q<=100),分别表示这个画中有多少个顶点和多少条连线。(点的编号从1到P)
随后的Q行,每行有两个正整数A,B(0<A,B<P),表示编号为A和B的两点之间有连线。
Output如果存在符合条件的连线,则输出"Yes",
如果不存在符合条件的连线,输出"No"。
Sample Input2
4 3
1 2
1 3
1 4
4 5
1 2
2 3
1 3
1 4
3 4
Sample OutputNo
Yes
百度到的一笔画的特点【好像这是属于公考必备知识】:图形是一个整体、并且奇点的个数为0或者2、那么什么是奇点呢?从这个点出发的线能数出来是奇数条的点、
转化成acm语言就是这样的:
1、图形是一个整体:各个点merge之后n个点是一条路(n个点都在一个集合里边)。
2、并且奇点的个数为0或者2:各个点的入度是奇数的点要么是0,要么是2、
这里提供几个图用来验证:
然后是AC代码咯~:
/* 一笔画:必须能够形成一条路、 奇点只能是0或2、*/#include<stdio.h>#include<string.h>using namespace std;int degree[101];int f[101];int find(int x){ return f[x] == x ? x : (f[x] = find(f[x]));}void merge(int a,int b){ int A,B; A=find(a); B=find(b); if(A!=B) f[B]=A;}int main(){ int t; scanf("%d",&t); while(t--) { memset(degree,0,sizeof(degree)); int n,m; scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) { f[i]=i; } for(int i=0;i<m;i++) { int x,y; scanf("%d%d",&x,&y); merge(x,y); degree[x]++; degree[y]++; } int flag=0; for(int i=1;i<=n;i++) { if(f[i]==i)flag++; } if(flag!=1)// 只能是一条路,否则不对 { printf("No\n"); } else { int jidian=0; for(int i=1;i<=n;i++) { if(degree[i]%2==1)jidian++; } if(jidian==0||jidian==2)//奇点个数只能是0或者2 { printf("Yes\n"); } else { printf("No\n"); } } }}
0 0
- hrbust 1658,哈理工oj 1658 一笔画【并查集过】
- hrbust 哈理工oj 2026 势力较量【并查集】
- 哈理工oj hrbust 1725 Virus Outbreaking【并查集】
- hrbust 哈理工oj 1418 夏夜星空【带权并查集】
- hrbust 哈理工oj 1360 Leyni的国家III【多路径并查集】
- hrbust/哈理工oj 1507 水神的栅栏【计算几何+并查集】
- hrbust 哈理工oj 2016 势力较量 (并查集)
- hrbust 哈理工oj1490 咒语【基础并查集】
- hrbust 哈理工OJ 2133 最快通过【dijkstra过】
- hrbust 哈理工OJ 1498Elevator Trouble【BFS过】
- hrbust 哈理工oj 2179 组合【基础dfs过】
- hrbust 哈理工oj 1743 Word Search【DFS过】
- 并查集-一笔画
- 哈理工OJ 1959 森林木(并查集)
- 哈理工oj 1725 Virus Outbreaking 【并查集】
- 哈理工oj 1490咒语【基础并查集】
- 一笔画问题(南阳理工oj)
- nyoj 一笔画(并查集)
- [DevExpress]XtraTabControl右键添加关闭当前页、关闭其他页、全部关闭的实现
- POJ-1287 Networking
- Android Studio注释模板创建
- 扩展kmp习题
- Play with Chain hdu 3487(伸展树翻转+删子树添子树)
- hrbust 1658,哈理工oj 1658 一笔画【并查集过】
- 右击电脑桌面后发现没有属性 2种方法
- iOS 开发 初级: 应用设置Setting的实现
- if语句的小技巧
- 查看MongoDB索引的使用,管理索引
- EXP 导出时遇到错误 EXP-00091: Exporting questionable statistics.
- [BZOJ 1367][Baltic2004]sequence
- java中关键字static的用法
- Java抽象类与接口的区别(2)