以前知道白书上的代码,一直不理解,本来以为对欧拉回路定理已经很熟了,就是不明白为什么错,终于对白书上的代码有认识了,就是必须把输出语句给存起来。。不能在函数dfs里输出啊。。。错了N次啊。。为什么要把输出压到栈里,讲解在http://www.nocow.cn/index.php/USACO/fence有提到,貌似是可能存在环的情况,至今不是很明白。

和虎哥讨论了一下,直接把在dfs里直接输出的程序给cha掉了。orz一下。。。

7   1 2 2 3 3 4 4 1 3 5 5 6 6 3

这个数据就是1 2 3 4是一个环,3 5 6也是一个环,到3这个结点时候按字典序查的时候会先搜4,这样就出错了。

PS:以前做过输出图的深度优先搜索遍历,忘记了啊。。。2012.11.29

 1 /*
 2       ID: cuizhe
 3       LANG: C++
 4       TASK: fence
 5 */
 6 #include <cstdio>
 7 #include <cstring>
 8 #include <cmath>
 9 #include <queue>
10 #include <map>
11 using namespace std;
12 int p[501][501],L[501],ans = 1,res[10001];
13 void dfs(int x)
14 {
15     int i;
16     for(i = 1; i <= 500; i ++)
17     {
18         if(p[x][i])
19         {
20             p[x][i] --;
21             p[i][x] --;
22             dfs(i);
23         }
24     }
25     res[ans++] = x;
26     return ;
27 }
28 int main()
29 {
30     int n,sv,ev,str,i,z;
31     freopen("fence.in","r",stdin);
32     freopen("fence.out","w",stdout);
33     scanf("%d",&n);
34     for(i = 1; i <= n; i ++)
35     {
36         scanf("%d%d",&sv,&ev);
37         L[sv] ++;L[ev] ++;
38         p[sv][ev] ++;
39         p[ev][sv] ++;
40     }
41     z = 1;
42     for(i = 1; i <= 500; i ++)
43     {
44         if(L[i]%2 == 1)
45         {
46             str = i;
47             break;
48         }
49         if(z&&L[i])
50         {
51             str = i;
52             z = 0;
53         }
54     }
55     dfs(str);
56     for(i = ans-1;i >= 1;i --)
57     printf("%d\n",res[i]);
58     return 0;
59 }

转载于:https://www.cnblogs.com/naix-x/archive/2012/11/23/2783875.html

USACO 3.3 Riding the Fences(欧拉路输出路径)相关推荐

  1. hihoCoder #1182 欧拉路·三 (变形)

    题意: 写出一个环,环上有2^n个格子,每个格子中的数字是0或1,相连着的n个格子可以组成一个数的二进制,要求给出这2^n个数字的序列,使得组成的2^n个数字全是不同的.(即从0到2^n-1) 思路: ...

  2. 离散数学实验报告 实验3 欧拉路的确定

    离散数学实验报告 实验3 欧拉路的确定 一.实验目的 理解欧拉图的概念,掌握欧拉通/回路的判定方法. 二.实验内容 输入一个无向简单图的邻接矩阵,判定该图是否含有欧拉通/回路.若有,请给出一条欧拉通/ ...

  3. 欧拉回路与欧拉路(模板)

    欧拉回路 欧拉图: 就是从任意一个点开始都可以一笔画完整个图 半欧拉图: 必须从某个点开始才能一笔画完整个图. 对于无向图 , 是欧拉图当且仅当 是连通的且没有奇度顶点. 对于无向图 , 是半欧拉图当 ...

  4. 洛谷 P2731 骑马修栅栏 Riding the Fences

    P2731 骑马修栅栏 Riding the Fences 题目背景 Farmer John每年有很多栅栏要修理.他总是骑着马穿过每一个栅栏并修复它破损的地方. 题目描述 John是一个与其他农民一样 ...

  5. 图论--欧拉路,欧拉回路(小结)

    在题目中在慢慢细说概念 1.HDU - 3018 Ant Trip 题目大意:又N个村庄,M条道路.问须要走几次才干将全部的路遍历 解题思路:这题问的是有关欧拉路的判定 欧拉路就是每条边仅仅能走一次, ...

  6. 小A与欧拉路(牛客-树的直径)

    题解: 欧拉路:从图中任意一个点开始到图中任意一个点结束的路径,并且图中每条边只通过恰好一次 问你走完这树上所有的点最短路径是什么. 因为树是没有环的,所以你走到叶子结点的时候需要往回走,也就是再走一 ...

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

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

  8. 模板 - 欧拉路、欧拉回路(一笔画问题)

    整理的算法模板合集: ACM模板 目录 非递归版 普通递归版 HierholzersHierholzersHierholzers算法(输出字典序最小的答案) FleuryFleuryFleury算法 ...

  9. [欧拉路]CF1152E Neko and Flashback

    1152E - Neko and Flashback 题意:对于长为n的序列c和长为n - 1的排列p,我们可以按照如下方法得到长为n - 1的序列a,b,a',b'. ai = min(ci, ci ...

  10. hihocder 1181 : 欧拉路·二

    因为相连的两个数字总是相同的,不妨我们只写一次,那么这个例子可以写成:3-2-4-3-5-1.6个数字刚好有5个间隙,每个间隙两边的数字由恰好对应了一块骨牌. 如果我们将每一个数字看作一个点,每一块骨 ...

最新文章

  1. Java Date类
  2. mxnet中symbol的网络结构输出(参数维度,和每层输出维度)
  3. pytorch 损失函数总结
  4. 使用 python 3.6 和 Vmware WorkStation 构建一个小型虚拟局域网通讯程序
  5. 【组合数学】非降路径问题 ( 非降路径问题概要说明 | 非降路径问题基本模型 | 非降路径问题拓展模型 1 非原点起点 | 非降路径问题拓展模型 2 有途经点 )
  6. UA OPTI570 量子力学 恒等算符在算符计算中的应用
  7. 解决windows版 duet display无法正常连接 【看完就会】
  8. Spring对不同来源的Resources的支持
  9. 问题记录:EntityFramework 一对一关系映射
  10. 从天地图下载瓦片构建本地瓦片地图
  11. 深入剖析引用参数Ref和Out
  12. Docker下Cannot connect to the Docker daemon. Is the docker daemon running on this host错误解决方案
  13. halcon教程- 边缘检测 亚像素边缘提取 轮廓提取
  14. 网站头像html,分享一个非常强大的头像在线生成网站
  15. IDEA felix osgi项目搭建(1)
  16. 树上的动态规划--树的最大独立集--刷表法
  17. win7 win10双系统开机系统引导
  18. WOS(SCI)爬虫:风车WOS下载器
  19. 历尽千帆,归来仍少年
  20. 如何在桌面截取gif动态图

热门文章

  1. 滚动率分析(Roll Rate Analysis)
  2. 自动驾驶 9-3: 走向非线性 - 扩展卡尔曼滤波器 Going Nonlinear - The Extended Kalman Filter
  3. 把UIView提到所有View的最前面
  4. java swing外文文献_外文文献及译文基于JAVA题库管理系统.doc
  5. 中input标签赋值_Salesforce LWC学习(十六) Validity 在form中的使用浅谈
  6. 汇编程序实现快速排序_用Python 3实现快速排序和插入排序代码详解
  7. 用反卷积(Deconvnet)可视化和理解卷积网络
  8. boost的时间和日期处理-(1)日期的操作
  9. 降维系列之 MDS多维缩放 与 ISOMAP 等度量映射
  10. Git来回切换版本的时候,pom文件变黄,每次都需要重新添加到maven以及修改后文件不生效的解决方法