USACO 3.3 Riding the Fences(欧拉路输出路径)
以前知道白书上的代码,一直不理解,本来以为对欧拉回路定理已经很熟了,就是不明白为什么错,终于对白书上的代码有认识了,就是必须把输出语句给存起来。。不能在函数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(欧拉路输出路径)相关推荐
- hihoCoder #1182 欧拉路·三 (变形)
题意: 写出一个环,环上有2^n个格子,每个格子中的数字是0或1,相连着的n个格子可以组成一个数的二进制,要求给出这2^n个数字的序列,使得组成的2^n个数字全是不同的.(即从0到2^n-1) 思路: ...
- 离散数学实验报告 实验3 欧拉路的确定
离散数学实验报告 实验3 欧拉路的确定 一.实验目的 理解欧拉图的概念,掌握欧拉通/回路的判定方法. 二.实验内容 输入一个无向简单图的邻接矩阵,判定该图是否含有欧拉通/回路.若有,请给出一条欧拉通/ ...
- 欧拉回路与欧拉路(模板)
欧拉回路 欧拉图: 就是从任意一个点开始都可以一笔画完整个图 半欧拉图: 必须从某个点开始才能一笔画完整个图. 对于无向图 , 是欧拉图当且仅当 是连通的且没有奇度顶点. 对于无向图 , 是半欧拉图当 ...
- 洛谷 P2731 骑马修栅栏 Riding the Fences
P2731 骑马修栅栏 Riding the Fences 题目背景 Farmer John每年有很多栅栏要修理.他总是骑着马穿过每一个栅栏并修复它破损的地方. 题目描述 John是一个与其他农民一样 ...
- 图论--欧拉路,欧拉回路(小结)
在题目中在慢慢细说概念 1.HDU - 3018 Ant Trip 题目大意:又N个村庄,M条道路.问须要走几次才干将全部的路遍历 解题思路:这题问的是有关欧拉路的判定 欧拉路就是每条边仅仅能走一次, ...
- 小A与欧拉路(牛客-树的直径)
题解: 欧拉路:从图中任意一个点开始到图中任意一个点结束的路径,并且图中每条边只通过恰好一次 问你走完这树上所有的点最短路径是什么. 因为树是没有环的,所以你走到叶子结点的时候需要往回走,也就是再走一 ...
- 图论-欧拉路(UVA10054)(HDU1116)
首先说一下定义: 欧拉路:从图中某点出发可以遍历全图,图中的每条边通过且只能通过一次. 欧拉回路:具有欧拉路性质且起点位置与终点位置相同. 主要问题就是一个图中是否存在欧拉路,和打印欧拉路路径. 先说 ...
- 模板 - 欧拉路、欧拉回路(一笔画问题)
整理的算法模板合集: ACM模板 目录 非递归版 普通递归版 HierholzersHierholzersHierholzers算法(输出字典序最小的答案) FleuryFleuryFleury算法 ...
- [欧拉路]CF1152E Neko and Flashback
1152E - Neko and Flashback 题意:对于长为n的序列c和长为n - 1的排列p,我们可以按照如下方法得到长为n - 1的序列a,b,a',b'. ai = min(ci, ci ...
- hihocder 1181 : 欧拉路·二
因为相连的两个数字总是相同的,不妨我们只写一次,那么这个例子可以写成:3-2-4-3-5-1.6个数字刚好有5个间隙,每个间隙两边的数字由恰好对应了一块骨牌. 如果我们将每一个数字看作一个点,每一块骨 ...
最新文章
- Java Date类
- mxnet中symbol的网络结构输出(参数维度,和每层输出维度)
- pytorch 损失函数总结
- 使用 python 3.6 和 Vmware WorkStation 构建一个小型虚拟局域网通讯程序
- 【组合数学】非降路径问题 ( 非降路径问题概要说明 | 非降路径问题基本模型 | 非降路径问题拓展模型 1 非原点起点 | 非降路径问题拓展模型 2 有途经点 )
- UA OPTI570 量子力学 恒等算符在算符计算中的应用
- 解决windows版 duet display无法正常连接 【看完就会】
- Spring对不同来源的Resources的支持
- 问题记录:EntityFramework 一对一关系映射
- 从天地图下载瓦片构建本地瓦片地图
- 深入剖析引用参数Ref和Out
- Docker下Cannot connect to the Docker daemon. Is the docker daemon running on this host错误解决方案
- halcon教程- 边缘检测 亚像素边缘提取 轮廓提取
- 网站头像html,分享一个非常强大的头像在线生成网站
- IDEA felix osgi项目搭建(1)
- 树上的动态规划--树的最大独立集--刷表法
- win7 win10双系统开机系统引导
- WOS(SCI)爬虫:风车WOS下载器
- 历尽千帆,归来仍少年
- 如何在桌面截取gif动态图
热门文章
- 滚动率分析(Roll Rate Analysis)
- 自动驾驶 9-3: 走向非线性 - 扩展卡尔曼滤波器 Going Nonlinear - The Extended Kalman Filter
- 把UIView提到所有View的最前面
- java swing外文文献_外文文献及译文基于JAVA题库管理系统.doc
- 中input标签赋值_Salesforce LWC学习(十六) Validity 在form中的使用浅谈
- 汇编程序实现快速排序_用Python 3实现快速排序和插入排序代码详解
- 用反卷积(Deconvnet)可视化和理解卷积网络
- boost的时间和日期处理-(1)日期的操作
- 降维系列之 MDS多维缩放 与 ISOMAP 等度量映射
- Git来回切换版本的时候,pom文件变黄,每次都需要重新添加到maven以及修改后文件不生效的解决方法