博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdoj--5526--欧拉回路(欧拉回路)
阅读量:5313 次
发布时间:2019-06-14

本文共 1121 字,大约阅读时间需要 3 分钟。



欧拉回路

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 11717    Accepted Submission(s): 4296

Problem Description
欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路。现给定一个图,问是否存在欧拉回路?
 
Input
测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是节点数N ( 1 < N < 1000 )和边数M;随后的M行对应M条边,每行给出一对正整数,分别是该条边直接连通的两个节点的编号(节点从1到N编号)。当N为0时输入结
束。
 
Output
每个测试用例的输出占一行,若欧拉回路存在则输出1,否则输出0。
 
Sample Input
 
3 3 1 2 1 3 2 3 3 2 1 2 2 3 0
 
Sample Output
 
1 0
 
Author
ZJU
 
Source
 
Recommend
We have carefully selected several similar problems for you:            
略坑,刚开始直接判定奇数度数了,wa一次,其实还需要判断是不是连在了一起,要用并查集判定的,其实还是觉得这个题目说的不是很清楚,存在欧拉回路是神魔意思啊,不用所有的点也行吗
#include
#include
#include
using namespace std;int dre[1010],pre[1010];int find(int x){ return pre[x]==x?pre[x]:(pre[x]=find(pre[x]));}void join(int x,int y){ int fx=find(x); int fy=find(y); if(fx!=fy) pre[fx]=fy;}int main(){ int n,m; while(scanf("%d",&n)!=EOF) { if(n==0) break; scanf("%d",&m); int x,y; for(int i=1;i<=n;i++) pre[i]=i; memset(dre,0,sizeof(dre)); for(int i=0;i

转载于:https://www.cnblogs.com/playboy307/p/5273382.html

你可能感兴趣的文章
机器视觉:SSD Single Shot MultiBox Detector
查看>>
201521123044 《Java程序设计》第1周学习总结
查看>>
MIT Scheme 的基本使用
查看>>
程序员的“机械同感”
查看>>
在16aspx.com上下了一个简单商品房销售系统源码,怎么修改它的默认登录名和密码...
查看>>
c++回调函数
查看>>
linux下Rtree的安装
查看>>
【Java】 剑指offer(53-2) 0到n-1中缺失的数字
查看>>
Delphi中ListView类的用法
查看>>
多米诺骨牌
查看>>
Linq 学习(1) Group & Join--网摘
查看>>
asp.net 调用前台JS调用后台,后台掉前台JS
查看>>
Attribute(特性)与AOP
查看>>
苹果手表:大方向和谷歌一样,硬件分道扬镳
查看>>
Competing Consumers Pattern (竞争消费者模式)
查看>>
Android面试收集录15 Android Bitmap压缩策略
查看>>
PHP魔术方法之__call与__callStatic方法
查看>>
ubuntu 安装后的配置
查看>>
【模板】对拍程序
查看>>
【转】redo与undo
查看>>