题目链接:传送门

思路:

就是简单的找欧拉回路,不过要注意dfs边时要将边的编号/2,不然会分不清那条边每被遍历。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn = 1e5+;
int head[maxn],vis[maxn],ver[maxn],next[maxn],id[maxn],tot;
int ans[maxn],tt,du[maxn];
int MAX(int x,int y)
{
return x>y?x:y;
}
void Init()
{
memset(vis,,sizeof(vis));
memset(head,,sizeof(head));
memset(du,,sizeof(du));
tot=;tt=;
}
void addedge(int u,int v,int w)
{
ver[++tot]=v;next[tot]=head[u];id[tot]=w;head[u]=tot;
}
void dfs(int u)
{
for(int i=head[u];i;i=next[i]){
int v=ver[i];
if(!vis[(i+)>>]){
vis[(i+)>>]=;
dfs(v);
ans[++tt]=id[i];
}
}
}
int main(void)
{
int n,m,x,y,z,i,j,ss;
while(scanf("%d%d",&x,&y)&&(x+y)){
Init();
scanf("%d",&z);
du[x]++;du[y]++;
ss=x<y?x:y;
n=MAX(x,y);m=;
addedge(x,y,z);addedge(y,x,z);
while(scanf("%d%d",&x,&y)&&(x+y)){
scanf("%d",&z);
n=MAX(n,MAX(x,y));m++;
du[x]++;du[y]++;
addedge(x,y,z);addedge(y,x,z);
}
int fg=;
for(i=;i<=n;i++)
if(du[i]%){
fg=;break;
} if(fg==) printf("Round trip does not exist.\n");
else{
dfs(ss);
if(m!=tt) printf("Round trip does not exist.\n");
else{
for(i=tt;i>=;i--) printf("%d ",ans[i]);
printf("%d\n",ans[]);
}
}
}
return ;
}

LOJ-10109(欧拉回路)的更多相关文章

  1. 【LOJ#2162】【POI2011】Garbage(欧拉回路)

    [LOJ#2162][POI2011]Garbage(欧拉回路) 题面 LOJ 题解 首先有一个比较显然的结论,对于不需要修改颜色的边可以直接删掉,对于需要修改的边保留.说白点就是每条边要被访问的次数 ...

  2. loj题目总览

    --DavidJing提供技术支持 现将今年7月份之前必须刷完的题目列举 完成度[23/34] [178/250] 第 1 章 贪心算法 √ [11/11] #10000 「一本通 1.1 例 1」活 ...

  3. [POI2011]Garbage 欧拉回路

    [POI2011]Garbage 链接 https://www.lydsy.com/JudgeOnline/problem.php?id=2278 https://loj.ac/problem/216 ...

  4. LOJ 一本通一句话题解系列:

    第一部分 基础算法 第 1 章 贪心算法 1):「一本通 1.1 例 1」活动安排:按照结束时间排序,然后扫一遍就可以了. 2):「一本通 1.1 例 2」种树:首先要尽量的往区间重叠的部分种树,先按 ...

  5. ACM/ICPC 之 混合图的欧拉回路判定-网络流(POJ1637)

    //网络流判定混合图欧拉回路 //通过网络流使得各点的出入度相同则possible,否则impossible //残留网络的权值为可改变方向的次数,即n个双向边则有n次 //Time:157Ms Me ...

  6. [poj2337]求字典序最小欧拉回路

    注意:找出一条欧拉回路,与判定这个图能不能一笔联通...是不同的概念 c++奇怪的编译规则...生不如死啊... string怎么用啊...cincout来救? 可以直接.length()我也是长见识 ...

  7. ACM: FZU 2112 Tickets - 欧拉回路 - 并查集

     FZU 2112 Tickets Time Limit:3000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u P ...

  8. UVA 10054 the necklace 欧拉回路

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

  9. POJ 1637 混合图的欧拉回路判定

    题意:一张混合图,判断是否存在欧拉回路. 分析参考: 混合图(既有有向边又有无向边的图)中欧拉环.欧拉路径的判定需要借助网络流! (1)欧拉环的判定:一开始当然是判断原图的基图是否连通,若不连通则一定 ...

  10. codeforces 723E (欧拉回路)

    Problem One-Way Reform 题目大意 给一张n个点,m条边的无向图,要求给每条边定一个方向,使得最多的点入度等于出度,要求输出方案. 解题分析 最多点的数量就是入度为偶数的点. 将入 ...

随机推荐

  1. java学习--Iterable 和 Iterator

    Iterable Iterable :故名思议,实现了这个接口的集合对象支持迭代,是可迭代的. 一个集合对象要表明自己支持迭代,能有使用foreach语句的特权,就必须实现Iterable接口,表明我 ...

  2. anu小程序快速入门

    众所周知,微信推出小程序以来,可谓火遍大江南北,就像当前互联网兴起时,大家忙着抢域名与开私人博客一样.小程序之所以这么火,是因为微信拥有庞大的用户量,并且腾讯帮你搞定后台问题及众多功能问题(如分享,支 ...

  3. vue---canvas实现二维码和图片合成的海报

    应项目需求,要一张宣传页面上加一个太阳码合成一张宣传海报,用户用微信可以识别进入微信小程序. 1. npm安装 npm install html2canvas --save   //html转canv ...

  4. Presto集群部署和配置

    参考文档:1.https://blog.csdn.net/zzq900503/article/details/79403949 prosto部署与连接hive使用                 2. ...

  5. PhoenixFD插件流体模拟——UI布局【Export】详解

    Liquid Export 流体导出 本文主要讲解Export折叠栏中的内容.原文地址:https://docs.chaosgroup.com/display/PHX3MAX/Liquid+Expor ...

  6. Vue和后台交互的方式

    1 vue-resource https://segmentfault.com/a/1190000007087934   2 axios   3 ajax

  7. 关于逻辑回归是否线性?sigmoid

    from :https://www.zhihu.com/question/29385169/answer/44177582 逻辑回归的模型引入了sigmoid函数映射,是非线性模型,但本质上又是一个线 ...

  8. layui数据表格监听按钮问题

    layui官网文档源码 原始容器 <table id="demo" lay-filter="test"></table> 工具栏模板: ...

  9. py_innodb_page_info

    python py_innodb_page_info.py -v /usr/local/var/mysql/ibdata1 mylib.py #encoding=utf-8 import os imp ...

  10. java中mysql查询报错java.sql.SQLException: Before start of result set

    异常:java.sql.SQLException: Before start of result set 解决方法:使用rs.getString();前一定要加上rs.next(); sm = con ...