看是否有欧拉回路 有的话打印路径

欧拉回路存在的条件:

如果是有向图的话

1.底图必须是连通图

2.最多有两个点的入度不等于出度 且一个点的入度=出度+1 一个点的入度=出度-1

如果是无向图的话

1.如果这个无向图的连通的 当最多只有两个度数为奇数的点 就一定有欧拉回路

当有两个度数为奇数的点的时候 一个为起点 一个为终点

//============================================================================
// Name : UVA.cpp
// Author :
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================ #include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <map>
#include <vector>
using namespace std;
const int MAXN=;
int F[];
int find(int x)
{
if(F[x]==-)return x;
else return F[x]=find(F[x]);
}
void bing(int x,int y)
{
int t1=find(x);
int t2=find(y);
if(t1!=t2)F[t1]=t2;
}
int num[];
int G[][];
void Traverse(int u)
{
for(int v=;v<=;v++)
if(G[u][v]>)
{
G[u][v]--;
G[v][u]--;
Traverse(v);
printf("%d %d\n",v,u);
}
}
int main()
{
// freopen("in.txt","r",stdin);
// freopen("out.txt","w",stdout);
int T;
int n;
scanf("%d",&T);
int iCase=;
while(T--)
{
if(iCase>)printf("\n");
iCase++;
scanf("%d",&n);
int u,v;
memset(F,-,sizeof(F));
memset(num,,sizeof(num));
memset(G,,sizeof(G));
for(int i=;i<n;i++)
{
scanf("%d%d",&u,&v);
num[u]++;
num[v]++;
bing(u,v);
G[u][v]++;
G[v][u]++;
}
bool flag=true;
int temp=-;
for(int i=;i<=;i++)
{
if(num[i]==)continue;
if(num[i]%)
{
flag=false;
break;
}
if(temp==-)
{
temp=find(i);
continue;
}
if(temp!=find(i))
{
flag=false;
break;
}
}
printf("Case #%d\n",iCase);
if(!flag)
{
printf("some beads may be lost\n");
continue;
}
for(int i=;i<=;i++)
if(num[i]!=)
{
u=i;
break;
}
Traverse(u);
}
return ;
}

Uva 10054 欧拉回路 打印路径的更多相关文章

  1. John's trip(POJ1041+欧拉回路+打印路径)

    题目链接:http://poj.org/problem?id=1041 题目: 题意:给你n条街道,m个路口,每次输入以0 0结束,给你的u v t分别表示路口u和v由t这条街道连接,要输出从起点出发 ...

  2. Watchcow(POJ2230+双向欧拉回路+打印路径)

    题目链接:http://poj.org/problem?id=2230 题目: 题意:给你m条路径,求一条路径使得从1出发最后回到1,并满足每条路径都恰好被沿着正反两个方向经过一次. 思路:由于可以回 ...

  3. UVA 10054 (欧拉回路) The Necklace

    题目:这里 题意:有一种由彩色珠子连接而成的项链,每个珠子两半由不同颜色(由1到50的数字表示颜色)组成,相邻的两个珠子在接触的地方颜色相同,现在有一些零碎的珠子,确认它是否能 复原成完整的项链. 把 ...

  4. What Goes Up UVA - 481 LIS+打印路径 【模板】

    打印严格上升子序列: #include<iostream> #include<cstdio> #include<algorithm> #include<cst ...

  5. UVA 10054 The Necklace(欧拉回路,打印路径)

    题目链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  6. uva 10054 The Necklac(欧拉回路)

    明显的欧拉回路,把颜色作为点,建图后,做一遍欧拉回路.不过我是现学的,打印路径上纠结了一下,发现随着FindEuler()的递归调用的结束,不断把点压入栈中,从后向前打印,遇到"支路&quo ...

  7. UVa 103 - Stacking Boxes (LIS,打印路径)

    链接:UVa 103 题意:给n维图形,它们的边长是{d1,d2,d3...dn},  对于两个n维图形,求满足当中一个的全部边长 依照随意顺序都一一相应小于还有一个的边长,这种最长序列的个数,而且打 ...

  8. Uva 10131 Is Bigger Smarter? (LIS,打印路径)

    option=com_onlinejudge&Itemid=8&page=show_problem&problem=1072">链接:UVa 10131 题意: ...

  9. 【欧拉回路】UVA - 10054 The Necklace

    题目大意: 一个环被切割成了n个小块,每个小块有头尾两个关键字,表示颜色. 目标是判断给出的n个小块能否重构成环,能则输出一种可行解(按重构次序输出n个色块的头尾颜色).反之输出“some beads ...

随机推荐

  1. nfs服务安装部署测试

    nfs:网络文件系统作用:某个文件或目录共享,使其它用户可以通过网络访问此共享目录或文件.***特别注意共享的目录权限1.使用nfs需要先安装 yum install -y nfs-utils rpc ...

  2. 【Qt开发】QImage设置为8-bit灰度图

    项目中用到大量基础图像处理知识,其中灰度图的生成是很重要的一环. 先补充一些基础知识: -------------------------------------------------------- ...

  3. es5实现数组去重

    var a = [1, 2, 4, 4, 3, 3, 1, 5, 3] console.log(a.filter((item, index, arr) => { return arr.index ...

  4. IntelliJ IDEA将导入的项目转成maven项目

    今天导入公司的maven项目,发现结构不对劲,难怪说为啥一直不能部署tomcat,后面百度才了解到导入这个项目还不是maven项目,首先需要把这个项目变成maven项目,然后再进行tomcat的部署下 ...

  5. AES ------ 第三方库

    tiny-AES-c-master.zip 这个库可用

  6. spring boot-13.数据访问

    1.spring boot 的自动配置提供的方便快捷的数据库操作服务,只需要进行少量配置即可连接数据库.spring boot 在org.springframework.boot.autoconfig ...

  7. sql server CDC报错:超出存储过程、函数、触发器的最大嵌套层数(最大层为32)

     sys.sp_MScdc_capture_job   RAISERROR(22801, 10, -1)      --原本 go sys.sp_MScdc_capture_job; go --修改后 ...

  8. [转帖][Linux]systemd和sysV

    [Linux]systemd和sysV   转自:https://www.cnblogs.com/EasonJim/p/7168216.html 在Debian8中systemd和sysVinit同时 ...

  9. 基于Spark的电影推荐系统

    数据文件: u.data(userid  itemid  rating  timestamp) u.item(主要使用 movieid movietitle) 数据操作 把u.data导入RDD, t ...

  10. 配置Bean的作用域

    一.Spring中Bean的5个作用域 在Spring 2.0及之后的版本中,Bean的作用域被划分为5种.如下 singleton  默认值.以单例模式创建Bean的实例,即容器中该Bean的实例只 ...