HDU 1878:欧拉回路【并查集】
来源:互联网 发布:sql字符串拼接 编辑:程序博客网 时间:2024/04/30 06:43
欧拉回路
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 11715 Accepted Submission(s): 4294
Problem Description
欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路。现给定一个图,问是否存在欧拉回路?
Input
测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是节点数N ( 1 < N < 1000 )和边数M;随后的M行对应M条边,每行给出一对正整数,分别是该条边直接连通的两个节点的编号(节点从1到N编号)。当N为0时输入结
束。
束。
Output
每个测试用例的输出占一行,若欧拉回路存在则输出1,否则输出0。
Sample Input
3 31 21 32 33 21 22 30
Sample Output
10
连通,连通,连通重要的事情说三遍~~
AC-code:
#include<cstdio>#include<cstring>using namespace std;long long in[1005*1005];bool vis[1005][1005];int p[1005];void pre(int n){for(int i=0;i<n;i++)p[i]=i;}int find(int x){return p[x]==x?x:find(p[x]);}void join(int x,int y){int fx=find(x);int fy=find(y);if(fx!=fy)p[fy]=fx;}int main(){int n,m,i,a,b,num;while(scanf("%d",&n),n){scanf("%d",&m);pre(n);memset(in,0,sizeof(in));memset(vis,0,sizeof(vis));for(i=0;i<m;i++){scanf("%d%d",&a,&b);in[a]++;in[b]++;join(a,b);}num=0;for(i=1;i<=n;i++)if(p[i]==i)num++;if(num>1)printf("0\n");else{for(i=1;i<=n;i++)if(in[i]%2)break;if(i==n+1)printf("1\n");elseprintf("0\n");}}return 0;}
0 0
- hdu 1878 欧拉回路【并查集入门】
- hdu 1878_欧拉回路_并查集
- HDU 1878 欧拉回路 【并查集+欧拉图】
- HDU 1878:欧拉回路【并查集】
- HDU-1878(欧拉回路)(并查集)
- HDU 1878 欧拉回路 【基础并查集】
- 【HDU】-1878-欧拉回路(并查集)
- HDU-1878-欧拉回路【并查集】
- hdu-1878-欧拉回路-图论-并查集-java
- 【HDU 1878】欧拉回路(并查集)
- HDU 1878 欧拉回路 (使用并查集~)
- hdu 1878 欧拉回路 欧拉回路+并查集
- HDU 1878 欧拉回路 (并查集+欧拉回路)
- HDU 1878 欧拉回路(并查集+欧拉回路)
- HDU:1878 欧拉回路(并查集+欧拉回路)
- HDU 1878 欧拉回路(并查集&&欧拉回路)
- 【HDU 1878】欧拉回路(并查集,欧拉回路概念及判定)
- HDU-1878 欧拉回路(并查集,欧拉回路性质)
- 什么界面架构最好?
- poj1029 模拟/枚举
- 做一个具有阳光思维的人
- 网站开发时间计划表
- rtp over tcp
- HDU 1878:欧拉回路【并查集】
- 64位和32位编译环境下不同数据类型长度的区别
- iOS 8推送注册方式改变的问题
- x264代码剖析(十一):核心算法之宏块分析函数x264_macroblock_analyse()
- 第六届蓝桥杯 软件类省赛真题 第九题:打印大X
- oracle数据文件优化常用sql
- redis Strings类型和hash类型常用命令(笔记)
- 聪明的学生(bzoj 2523)
- Eclipse调错——Type The type javax.servlet.http.HttpServletRequest cannot be res...