题目:http://poj.org/problem?id=1041

明明是欧拉回路字典序输出的模板。

优先队列存边有毒。写跪。学习学习TJ发现只要按边权从大到小排序连边就能正常用邻接表了!

  还有一种存边的方法是把边的标号放到数组第二维里,达到一个桶的效果。

我当然知道那种模板是先dfs再在return的时候把边加进栈里最后倒序输出,可是这题为什么不正序呢?

然后WA了。发现可能先把一个点的度走完但此时其他点还有度这样的。

于是有了flag和return。然后就超时了。

再看看TJ,突然就明白了为什么要用那个栈的模板。感觉理解更深刻了。

还是模板好呀!

get到了存边方法!

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=,M=;
int st,n,m,hd[N],xnt,p[M],cnt,deg[N];
bool vis[M],flag;
struct Ed{
int nxt,to,bh;
Ed(int n=,int t=,int b=):nxt(n),to(t),bh(b) {}
}ed[M<<];
struct Tp{
int x,y,bh;Tp(int x=,int y=,int b=):x(x),y(y),bh(b) {}
bool operator< (const Tp &b)const
{return bh>b.bh;}
}tp[M];
void add(int x,int y,int z)
{
ed[++xnt]=Ed(hd[x],y,z);hd[x]=xnt;
ed[++xnt]=Ed(hd[y],x,z);hd[y]=xnt;
deg[x]++;deg[y]++;
}
/*
void dfs(int cr)
{
if(cnt==m){flag=1;return;}
for(int i=hd[cr];i;i=ed[i].nxt)
if(!vis[ed[i].bh])
{
vis[ed[i].bh]=1;p[++cnt]=ed[i].bh;
dfs(ed[i].to);
if(flag)return;
vis[ed[i].bh]=0;cnt--;
}
}
*/
void dfs(int cr)
{
for(int i=hd[cr];i;i=ed[i].nxt)
if(!vis[ed[i].bh])
{
vis[ed[i].bh]=;dfs(ed[i].to);
p[++cnt]=ed[i].bh;
}
}
int main()
{
int x,y,z;
while()
{
scanf("%d%d",&x,&y);if(!x&&!y)return ;
st=min(x,y);n=max(x,y);m=;
memset(hd,,sizeof hd);memset(vis,,sizeof vis);
memset(deg,,sizeof deg);xnt=cnt=;flag=;
scanf("%d",&z);tp[++m]=Tp(x,y,z);
while()
{
scanf("%d%d",&x,&y);if(!x&&!y)break;
scanf("%d",&z);tp[++m]=Tp(x,y,z);
n=max(n,(max(x,y)));
}
sort(tp+,tp+m+);
for(int i=;i<=m;i++)add(tp[i].x,tp[i].y,tp[i].bh);
for(int i=;i<=n;i++)
if(deg[i]&){flag=;break;}
if(flag)printf("Round trip does not exist.\n");
else
{
dfs(st);for(int i=cnt;i;i--)printf("%d ",p[i]);printf("\n");
}
}
}

poj 1041 John's trip——欧拉回路字典序输出的更多相关文章

  1. poj 1041 John's trip 欧拉回路

    题目链接 求给出的图是否存在欧拉回路并输出路径, 从1这个点开始, 输出时按边的升序输出. 将每个点的边排序一下就可以. #include <iostream> #include < ...

  2. POJ 1041 John's trip 无向图的【欧拉回路】路径输出

    欧拉回路第一题TVT 本题的一个小技巧在于: [建立一个存放点与边关系的邻接矩阵] 1.先判断是否存在欧拉路径 无向图: 欧拉回路:连通 + 所有定点的度为偶数 欧拉路径:连通 + 除源点和终点外都为 ...

  3. POJ1041 John's trip 【字典序输出欧拉回路】

    题目链接:http://poj.org/problem?id=1041 题目大意:给出一个连通图,判断是否存在欧拉回路,若存在输出一条字典序最小的路径. 我的想法: 1.一开始我是用结构体记录边的起点 ...

  4. [POJ 1041] John's Trip

    [题目链接] http://poj.org/problem?id=1041 [算法] 欧拉回路[代码] #include <algorithm> #include <bitset&g ...

  5. POJ 1041 John&#39;s trip Euler欧拉回路判定和求回路

    就是欧拉判定,判定之后就能够使用DFS求欧拉回路了.图论内容. 这里使用邻接矩阵会快非常多速度. 这类题目都是十分困难的.光是定义的记录的数组变量就会是一大堆. #include <cstdio ...

  6. POJ 1815 Friendship(最小割+字典序输出割点)

    http://poj.org/problem?id=1815 题意: 在现代社会,每个人都有自己的朋友.由于每个人都很忙,他们只通过电话联系.你可以假定A可以和B保持联系,当且仅当:①A知道B的电话号 ...

  7. UVA302 John's trip(欧拉回路)

    UVA302 John's trip 欧拉回路 attention: 如果有多组解,按字典序输出. 起点为每组数据所给的第一条边的编号较小的路口 每次输出完额外换一行 保证连通性 每次输入数据结束后, ...

  8. poj 1041(字典序输出欧拉回路)

    John's trip Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8641   Accepted: 2893   Spe ...

  9. POJ1041 John's trip

    John's trip Language:Default John's trip Time Limit: 1000MS Memory Limit: 65536K Total Submissions: ...

随机推荐

  1. Apache Pig和Solr问题笔记(一)

    记录下最近两天散仙在工作中遇到的有关Pig0.12.0和Solr4.10.2一些问题,总共有3个,如下: (1)问题一: 如何Pig中使用ASCII和十六进制(hexadecimal)的分隔符进行加载 ...

  2. JS完美运动框架【利用了Json】

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

  3. Python全栈开发:Ajax全套

    概述 对于WEB应用程序:用户浏览器发送请求,服务器接收并处理请求,然后返回结果,往往返回就是字符串(HTML),浏览器将字符串(HTML)渲染并显示浏览器上. 1.传统的Web应用 一个简单操作需要 ...

  4. thml粘连布局

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name ...

  5. 【JZOJ3362】【BZOJ3758】数数

    description 神犇最近闲来无事,于是就思考哲学,研究数字之美.在神犇看来,如果一个数的各位能够被分成两个集合,而且这两个集合里的数的和相等,那么这个数就是优美的(具体原因就只有神犇才知道了) ...

  6. Eureka服务治理学习笔记(摘抄)

    1.简介 EureKa在Spring Cloud全家桶中担任着服务的注册与发现的落地实现.Netflix在设计EureKa时遵循着AP原则,它基于R EST的服务,用于定位服务,以实现云端中间层服务发 ...

  7. 关于新手必须要理解的几个名词,cookie、session和token

    以下要说的,虽然不是开发过程中必须会遇到的,但却是进阶之路上必须要掌握的,一些涉及到状态管理与安全的应用当中尤为重要. 我之前虽略有学习,但也是东拼西凑临时看的一点皮毛,所以在这个假期利用一点时间,整 ...

  8. [原创]关于时间格式的坑(kk:mm:ss、HH:mm:ss与hh:mm:ss)

    笔者在项目中使用 kk:mm:ss表示24小时制,却发现与所想的不同,特记此坑,提醒众人: kk:mm:ss   24小时制,时间为1:00:00-24:59:59 HH:mm:ss 24小时制,时间 ...

  9. 10张图带你深入理解Docker容器和镜像-转

    转载:http://dockone.io/article/783 这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行 ...

  10. 如何给Apache Pig自定义UDF函数?

    近日由于工作所需,需要使用到Pig来分析线上的搜索日志数据,散仙本打算使用hive来分析的,但由于种种原因,没有用成,而Pig(pig0.12-cdh)散仙一直没有接触过,所以只能临阵磨枪了,花了两天 ...