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. myBatis调用postgreSQL存储过程

    1.调用没有OUT参数的存储过程: 创建存储过程: create or replace function get_code(a1 varchar(32)) returns varchar(32) as ...

  2. Lucene4.x创建索引与3.x的一些不同

    lucene3.x的时候创建Field的时候可以直接指定存储和索引的选项类下下边这样: doc.add(new Field("createrId",diaryField.getCr ...

  3. OC开发_代码片段——使用Xib自定义tableViewCell

    一.实现步骤 1.新建一个XIB文件:描述cell——tableCell.xib 2.新建UITableViewCell的子类,也就是cell文件:封装XIB内部的所有东西——TestCell.m \ ...

  4. Linux创建Python虚拟环境

    Linux创建Python虚拟环境 安装 pip install virtualenv 基本使用 为一个工程创建一个虚拟环境: $ cd my_project $ virtualenv venv #v ...

  5. 分布式锁的实现(java)

    当对接第三方接口时,往往会碰到同一时间发送了大量相同的请求,这个时候或许就是第三方发送接口的失误了.而我们需要做的就是针对这个情况来强化我们的系统.这个时候就需要用到分布式锁.让这些请求只有一个能发送 ...

  6. docx4j基本操作

    最近需要用docx4j来对docx进行一些操作,用到的技术是docx4j,这个技术在国内其实用的不是很多,看了一些博主的文章,有些感悟,做了一些总结,如果有疑问或错误之处欢迎交流. 创建包: Word ...

  7. Python开发【Tornado】:异步Web服务(一)

    异步Web服务 前言: 到目前为止,我们已经看到了许多使Tornado成为一个Web应用强有力框架的功能.它的简单性.易用性和便捷性使其有足够的理由成为许多Web项目的不错的选择.然而,Tornado ...

  8. UEM用户行为了如指掌!

    “千呼万唤始出来”,万众期待的UEM正式与宝宝们见面啦~~~ 今天很多人来问小编,Web咋不见了,表急,Web并没有消失,而是重磅升级为UEM啦!!! 什么是UEM呢?UEM全称User Experi ...

  9. android(十四)四种启动模式

    standard 启动的activity会每次都重新创建一个activity放到任务栈中.这是系统默认的启动模式. singleTop启动的activity,如果任务的栈顶刚好存在当前的activit ...

  10. 第1章 1.2计算机网络概述--Intenet和广域网

    1.ISP Internet服务提供商,也称ISP运营商.如:在中国,电信.网通.长城宽带. ISP运营商内部的网络连接十分发达,但是不同ISP运营商之间的连接的线路非常有限,这就导致了跨运营商访问网 ...