题目链接:https://uva.onlinejudge.org/external/100/10054.pdf

题目链接:http://vjudge.net/contest/132239#problem/C

欧拉回路公式:

1、图是连通的。

2、所有点的度都是偶数。

tip: 网上有很多解法,几乎都是一样,由于UVa的数据都是连通的,几乎都没有判连通。

#include <stdio.h>
#include <string.h>
#include <bits/stdc++.h> using namespace std; #define N 55
#define MAX 1010
int g[N][N],vis[N];
int d[N];
int n; void euler(int u)
{
int v;
for(v=; v<=; v++)
if(g[u][v])
{
g[u][v]--;
g[v][u]--;
euler(v);
printf("%d %d\n",v,u);
}
} void dfs(int k)
{
vis[k] = true;
for(int i=; i<=; i++)
{
if(g[k][i])
{
if(!vis[i])
dfs(i);
}
}
} int main()
{
//freopen("input.txt","r",stdin);
int t,T;
int i;
int u,v;
scanf("%d",&T);
vector<int> Q;
for(t= ; t<=T; t++)
{
memset(g,,sizeof(g));
memset(vis,,sizeof(vis));
memset(d,,sizeof(d));
Q.clear();
scanf("%d",&n);
for(i= ; i<=n; i++)
{
scanf("%d%d",&u,&v);
d[u]++;
d[v]++;
g[u][v]++;
g[v][u]++;
Q.push_back(u);
Q.push_back(v);
}
printf("Case #%d\n",t); dfs(Q[]);
bool flag = true;
for(i=; i<Q.size(); i++)
{
if(!vis[Q[i]])
{
flag = false;
break;
}
} if(!flag)
{
printf("some beads may be lost\n");
if(t!=T) printf("\n");
}
//图是连通的,要判断所有点的度是否有为偶数
else
{
for(i= ; i<=; i++)
if(d[i]%)
break;
if(i<=)
printf("some beads may be lost\n");
else //图连通而且所有点的度都为偶数,则是一个欧拉回路,输出路径
for(i=; i<=; i++)
euler(i);
if(t!=T) printf("\n");
}
}
return ;
}

UVa 10054,欧拉回路的更多相关文章

  1. Uva 10054 欧拉回路 打印路径

    看是否有欧拉回路 有的话打印路径 欧拉回路存在的条件: 如果是有向图的话 1.底图必须是连通图 2.最多有两个点的入度不等于出度 且一个点的入度=出度+1 一个点的入度=出度-1 如果是无向图的话 1 ...

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

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

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

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

  4. UVA 10054 the necklace 欧拉回路

    有n个珠子,每颗珠子有左右两边两种颜色,颜色有1~50种,问你能不能把这些珠子按照相接的地方颜色相同串成一个环. 可以认为有50个点,用n条边它们相连,问你能不能找出包含所有边的欧拉回路 首先判断是否 ...

  5. UVa 10054 (打印欧拉回路) The Necklace

    将每个颜色看成一个顶点,对于每个珠子在两个颜色之间连一条无向边,然后求欧拉回路. #include <cstdio> #include <cstring> + ; int G[ ...

  6. uva 10054 The Necklace 拼项链 欧拉回路基础应用

    昨天做了道水题,今天这题是比较水的应用. 给出n个项链的珠子,珠子的两端有两种颜色,项链上相邻的珠子要颜色匹配,判断能不能拼凑成一天项链. 是挺水的,但是一开始我把整个项链看成一个点,然后用dfs去找 ...

  7. UVa 10054 The Necklace【欧拉回路】

    题意:给出n个珠子,珠子颜色分为两半,分别用1到50之间的数字表示, 现在给出n个珠子分别的颜色,问是否能够串成一个环.即为首尾相连,成为一个回路 判断是否构成一个环,即判断是否为欧拉回路,只需要判断 ...

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

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

  9. UVa 10054 The Necklace BFS+建模欧拉回路

    算法指南 主要就是建立欧拉回路 #include <stdio.h> #include <string.h> #include <iostream> #includ ...

随机推荐

  1. Tomcat 部署:工程下 META-INF 目录下的 Context.xml

    tomcat 在META-INF 文件夹中添加context.xml,使项目自动应用更新文件 Meta-inf文件夹下新建context.xml. <Context path="/FU ...

  2. PostgreSQL Performance Monitoring Tools

    PostgreSQL Performance Monitoring Tools https://github.com/CloudServer/postgresql-perf-tools This pa ...

  3. PostgreSQL Replication之第九章 与pgpool一起工作(7)

    9.7 处理故障转移和高可用 可以使用pgpool来解决的一些明显的问题是高可用性和故障转移.一般来讲,有使用pgpool或者不使用pgpool可以用来处理这些问题的各种方法. 9.7.1 使用Pos ...

  4. angular 自定义指令

    Template-expanding directive: <div ng-controller="Controller"> <div my-customer&g ...

  5. 夺命雷公狗---Thinkphp----9之中间层的创建,防止跨目录访问

    我们创建一个CommonController.class.php的中间层,让后让别的控制器都直接继承CommonController这个控制器即可决解跨目录访问的问题, <?php namesp ...

  6. 夺命雷公狗jquery---6属性选择器

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  7. xcode简介

    Xcode 是苹果公司开发的编程软件,是开发人员建立OS X 和 iOS 应用程序的最快捷方式.Xcode 具有统一的用户界面设计,编码.测试.调试都在一个简单的窗口内完成. Xcode前身是继承自N ...

  8. 关于MyEcplise中常见的问题和解决方案

    1.问题:严重   The web application  created a ThreadLocal with key of type  and a value of type  but fail ...

  9. loadrunner具体实例教你如何进行结果分析

    1.对于吞吐量,单位时间内吞吐量越大,说明服务器的处理能越好,而请求数仅表示客户端向服务器发出的请求数,与吞吐量一般是成正比关系. 2.一般瓶颈应该就是某个因素在不断增加,某个相关性能指标也会不断增加 ...

  10. 如何修复损坏的MySQL数据表

    id=164 由于断电或非正常关机而导致MySQL数据库出现错误是非常常见的问题.有两种方法,一种方法使用mysql的check table和repair table 的sql语句,另一种方法是使用M ...