https://vjudge.net/problem/UVA-10054

题意:
有一种由彩色珠子连接成的项链。每个珠子的两半由不同颜色组成。相邻两个珠子在接触的地方颜色相同。现在有一些零碎的珠子,需要确认它们是否可以复原成完整的项链。

思路:

每种颜色看成一个结点,每个珠子的两半连一条有向边,这样就是欧拉回路的问题了。

最重要的一点,欧拉回路的输出一定逆序输出。

 #include<iostream>
#include<algorithm>
#include<string>
#include<cstring>
#include<queue>
#include<vector>
using namespace std; const int maxn = + ; int g[maxn][maxn];
int degree[maxn];
int n;
int MAX; void print(int u)
{
for (int i = ; i <= MAX; i++)
{
if (g[u][i])
{
g[u][i]--;
g[i][u]--;
print(i);
printf("%d %d\n", i, u);
}
}
} int main()
{
//freopen("D:\\txt.txt", "r", stdin);
int T;
int kase = ;
scanf("%d", &T);
int x, y;
while (T--)
{
memset(g, , sizeof(g));
memset(degree, , sizeof(degree));
MAX = ;
scanf("%d", &n); for (int i = ; i < n; i++)
{
scanf("%d%d", &x, &y);
degree[x]++;
degree[y]++;
g[x][y]++;
g[y][x]++;
MAX = max(MAX, max(x, y));
} printf("Case #%d\n", ++kase);
bool flag = true;
for (int i = ; i <= MAX; i++)
{
if (degree[i] % == )
{
printf("some beads may be lost\n");
flag = false;
break;
}
}
if (flag)
{
for (int i = ; i <= MAX; i++)
print(i);
}
printf("\n");
}
return ;
}

UVa 10054 项链(欧拉回路)的更多相关文章

  1. UVa 10054,欧拉回路

    题目链接:https://uva.onlinejudge.org/external/100/10054.pdf 题目链接:http://vjudge.net/contest/132239#proble ...

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

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

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

    题目分析:1.无向图欧拉回路是否连通2.所有点的度为偶数.并查集+degree 这题题目保证了是联通的  所以就不用判断是否联通了 #include <iostream> #include ...

  4. UVA 10294 项链与手镯 (置换)

    Burnside引理:对于一个置换\(f\), 若一个着色方案\(s\)经过置换后不变,称\(s\)为\(f\)的不动点.将\(f\)的不动点数目记为\(C(f)\), 则可以证明等价类数目为\(C( ...

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

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

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

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

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

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

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

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

  9. uva 10054 The Necklace(欧拉回路)

    The Necklace  My little sister had a beautiful necklace made of colorful beads. Two successive beads ...

随机推荐

  1. parseInt()解析整数与parsetFloat()解析浮点数

    1.parseInt(string,radix) 解析整数 parseInt("dgei23"); // NaN parseInt("3 blind mice" ...

  2. eui.Button 上放置两张图片

    有时按钮会有一个需求.放置一个按钮底图,按钮文字是特效字体,也是一张图. 1   1个普通按钮 <e:Button label="> <e:skinName> < ...

  3. elk日志分析与发掘深入分析

    elk日志分析与挖掘深入分析 1 为什么要做日志采集? 2 挖财自己的日志采集和分析体系应该怎么建? 2.1 日志的采集 2.2 日志的汇总与过滤 2.3 日志的存储 2.4 日志的分析与查询 3 需 ...

  4. 【vue】---Object.defineProperty基本使用---【巷子】

    1.object.defineProperty 给一个对象定义一个新的属性或者在修改一个对象现有的属性,并返回这个对象 语法: Object.defineProperty(参数1,参数2,参数3) 参 ...

  5. Gitlab备份和恢复操作

    参考:https://www.cnblogs.com/kevingrace/p/7821529.html 一,设置开启备份以及备份路径 /etc/gitlab/gitlab.rb gitlab_rai ...

  6. pta 习题集 5-17九宫格输入法

    假设有九宫格输入法键盘布局如下: [ 1,.?! ] [ 2ABC ] [ 3DEF ] [ 4GHI ] [ 5JKL ] [ 6MNO ] [ 7PQRS ] [ 8TUV ] [ 9WXYZ ] ...

  7. lambda 缩写推演

  8. Oracle管理监控之段空间利用监控-oracle性能优化

    SELECT S.OWNER,       S.SEGMENT_NAME,       S.SEGMENT_TYPE,       S.PARTITION_NAME,       ROUND(BYTE ...

  9. numpy中的convolve的理解

    https://blog.csdn.net/u011599639/article/details/76254442 函数 numpy.convolve(a, v, mode=‘full’),这是num ...

  10. python的pip的配置文件路径在哪里?如何修改pypi源?

    官方文档: https://pip.pypa.io/en/stable/user_guide/#configuration 举个例子: Windows用户想要更改pypi源,可以在%APPDATA%目 ...