如果图G中的一个路径包括每个边恰好一次,则路径称为欧拉路径。
如果一个回路是欧拉路径,则称为欧拉回路。(即起点终点相同的欧拉路)
有欧拉回路的称为欧拉图,有欧拉路径但无欧拉回路的称为半欧拉图。

无向图是欧拉图:当且仅当图的结点度数都为偶数。

// UVa10054 The Necklace
//zhizhao zhuo
#include<iostream>
#include<cstring>
#include<cstdio>
#include<vector>
#define M(a) memset(a,0,sizeof(a));
using namespace std;
const int maxn= 50+10;
int du[maxn],grid[maxn][maxn];
struct node{int u,v;node(int u,int v):u(u),v(v){}
};
vector<node>Q;
void found(int u){for(int i=1;i<=50;i++)if(grid[u][i]){grid[u][i]--;grid[i][u]--;found(i);Q.push_back(node(u,i));}
}
int main(){int T,N;scanf("%d",&T);for(int sum=0;sum<T;sum++){M(du);M(grid);scanf("%d",&N);int u,v,start;for(int i=0;i<N;i++){scanf("%d%d",&u,&v);du[u]++;du[v]++;grid[u][v]++;grid[v][u]++;start=u;}if(sum)printf("\n");printf("Case #%d\n",sum+1);bool mark=true;for(int i=1;i<=50;i++)if(du[i]%2!=0){mark=false;break;}if(mark){Q.clear();found(start);if(Q.size()!=N || Q[Q.size()-1].u !=Q[0].v)mark=false;}if(!mark)printf("some beads may be lost\n");else for(int i=Q.size()-1;i>=0;i--)printf("%d %d\n",Q[i].u,Q[i].v);}return 0;
}

转载于:https://www.cnblogs.com/zhizhaozhuo/p/9594224.html

UVa10054 The Necklace 欧拉回路相关推荐

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

    题目大意:有n个珠子,珠子两边的颜色已知,问能否连成一条项链.(两个珠子可以项链当且仅当一个珠子的一边颜色与另一个珠子的另一边颜色相同). 题目分析:欧拉回路.将颜色视作节点,珠子当做边,问题变成了找 ...

  2. [题解]UVA10054 The Necklace

    链接:http://vjudge.net/problem/viewProblem.action?id=18806 描述:给出一堆珠子,每个珠子有两种颜色,有一端颜色相同的珠子可以串在一起,问是否可以把 ...

  3. UVA 10054 the necklace 欧拉回路

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

  4. 图论算法与模型(训练指南题库)

    一.基础题目 1.UVA 11624 Fire!迷宫问题 多源BFS 题意: 帮助joe走出一个大火蔓延的迷宫,其中joe每分钟可往上下左右四个方向之一走,所有着火的格子都会蔓延(空格与着火格有公共边 ...

  5. CF1361C. Johnny and Megan‘s Necklace(构造,欧拉回路,传递闭包)

    CF1361C. Johnny and Megan's Necklace Solution 真duliu,快做吐了... 刚开始想了一个假做法(但前面还是很真的). 假的做法大概是你发现这个东西具有传 ...

  6. UVA10054-The Necklace(无向图欧拉回路——套圈算法)

    Problem UVA10054-The Necklace Time Limit: 3000 mSec Problem Description Input The input contains T t ...

  7. The Necklace(UVA10054)

    题目:The Necklace 思路:一个图只要满足,每个点的度为偶数,并且是连通图.就必定是欧拉图. 这题的图默认是连通图,所以只要满足每个点的度为偶数,然后再用深搜将它们输出就可以了 #inclu ...

  8. 图论-欧拉路(UVA10054)(HDU1116)

    首先说一下定义: 欧拉路:从图中某点出发可以遍历全图,图中的每条边通过且只能通过一次. 欧拉回路:具有欧拉路性质且起点位置与终点位置相同. 主要问题就是一个图中是否存在欧拉路,和打印欧拉路路径. 先说 ...

  9. 欧拉道路 和 欧拉回路

    经典的七桥问题:是否存在一条路线,可以不重复的走遍7座桥. 转化为图就是,是否存在一条路线,可以不重复地走遍所有边. 所以在欧拉道路中,"进"和"出"是相对应的 ...

最新文章

  1. 客户管理系统里的每个模块该如何显示?
  2. linux之SQL语句简明教程---AND OR
  3. 工业触屏系统开发经验分享
  4. 一张纸折多少次可以变成珠穆朗玛峰那么高?
  5. python——rang函数、for、braek循环
  6. github 搜索_github 项目搜索技巧让你更高效精准地搜索项目
  7. matlab dbns实现,matlab实现贝叶斯网络
  8. java怎么部署_java项目服务器如何部署?项目服务器的部署步骤
  9. linux系统鼠标主题下载,Ubuntu Linux鼠标主题:bCircle
  10. thymeleaf实现分页
  11. Ubuntu安装caj阅读器
  12. SpringBoot + screw 一键生成数据库文档,告别CV大法,解放生产力
  13. 【AAAI2022】FDIWN - Feature Distillation Interaction Weighting Network for Lightweight Image SR
  14. 在字典中查找兄弟单词
  15. 有关PS中图片不能解锁问题
  16. 【QT项目:视频播放器——Qt opengl编程】通过shader完成显示yuv
  17. 外贸企业邮箱多少钱? 企业内部邮箱用什么安全? 企业邮箱怎么申请?
  18. 匹马行天下之逆风翻盘篇——塞翁失马焉知非福
  19. Leaflet自定义一个Control(L.Control)
  20. Python 卸载所有pip依赖包

热门文章

  1. Computed property “value1“ was assigned to but it has no setter.
  2. 机场新增卫星厅对中转旅客影响的评估方法
  3. Angular Service
  4. 基础的学生成绩管理系统(C语言)
  5. 无法获得 VMCI 驱动程序的版本: 句柄无效。 驱动程序“vmci.sys”的版本不正确。请尝试重新安装 VMware Workstation。 开启模块 DevicePowerOn 的操作失败
  6. html 解析 qt,windows下用QTwebkit解析html
  7. java transferto_小六六学Netty系列之Java 零拷贝
  8. 申请购买计算机的报告,关于申请购买电脑的请示(最新整理)
  9. 《UNIX网络编程卷1》第一例及问题
  10. git在跟踪bug中的使用