题意:

  Bessie 最近做了农场看守,他每天晚上的工作就是巡视农场并且保证没有坏人破坏农场。从谷仓出发去巡视,并且最终回到谷仓。

  Bessie 视力不是很好,不能像其他农场的看守一样,对农场的每一条连接不同场地的路走一遍就可以发现是不是有异常情况,他需要每条路都走两遍,并且这两边必须是不同的方向,因为他觉得自己应该不会两次都忽略农场中的异常情况。

  每块地之间一定会由至少一条路相连。现在的任务就是帮他制定巡视路线。前提假设一定存在满足题意的路径。

输入:

  第一行输入两个数N(2 <= N <= 10000)和M(1 <= M <= 50000),表示农场一共有N块地M条路。

  第二到M+1行输入两个整数,表示对应的两块地之间有一条路。

输出:

  输出我2 * (m + 1)行,每行一个数字,表示Bessie 的巡查路径上地的编号,1号为谷仓,从1开始,从1结束。如果有多种你答案,输出任意一种。

样例输入

4 5

1 2

1 4

2 3

2 4

3 4

样例输出

1

2

3

4

2

1

4

3

2

4

1

解题思路:

  由于是无向边,而且每条边要求正反各走一次,所以一定存在欧拉回路。存图时把每条无向边看成两条相反的有向边,直接利用欧拉回路求解。
 (转自:http://www.cnblogs.com/Ash-ly/p/5398425.html)
 
不用回溯 一定有解

#include <cstdio>
using namespace std;
int n,m,tot=2,v[100001],first[10001],next[100001],vis[1000001],a[1000001],xxx,yyy;
void add(int xx,int yy){v[tot]=yy,next[tot]=first[xx],first[xx]=tot++;}
void dfs(int x){for(int i=first[x];i;i=next[i])if(!vis[i]) vis[i]=1,dfs(v[i]),printf("%d\n",x);
}
int main(){scanf("%d%d",&n,&m);for(int i=1;i<=m;i++)scanf("%d%d",&xxx,&yyy),add(xxx,yyy),add(yyy,xxx);printf("1\n");dfs(1);
}

转载于:https://www.cnblogs.com/SiriusRen/p/6532459.html

POJ 2230 DFS相关推荐

  1. A - 棋盘问题 POJ - 1321(dfs)

    A - 棋盘问题 POJ - 1321 dfs 复杂度计算: dfs共进行a步,每步需要循环n次,复杂度为 a^n次方 首先是暴力 an*n,果然炸了 #include<cstdio> # ...

  2. POJ 2230 Watchcow 欧拉回路的DFS解法(模板题)

    Watchcow Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 9974 Accepted: 4307 Special Judg ...

  3. poj 2531(dfs)

    题目链接:http://poj.org/problem?id=2531 思路:由于N才20,可以dfs爆搞,枚举所有的情况,复杂度为2^(n). 1 #include<iostream> ...

  4. POJ - Hopscotch(DFS)

    题目链接:http://poj.org/problem?id=3050 Time Limit: 1000MS Memory Limit: 65536K Description The cows pla ...

  5. POJ 2458 DFS+判重

    题意: 思路: 搜+判重 嗯搞定 (听说有好多人用7个for写得-.) //By SiriusRen #include <bitset> #include <cstdio>0 ...

  6. poj 3411(DFS多点访问)

    题意:有n座城市和m(1<=n,m<=10)条路.现在要从城市1到城市n.有些路是要收费的,从a城市到b城市,如果之前到过c城市,那么只要付P的钱,如果没有去过就付R的钱.求的是最少要花多 ...

  7. POJ 3051 DFS

    题意:判断连通块大小 水题 //By SiriusRen #include <cstdio> #include <cstring> #include <algorithm ...

  8. poj 3083 DFS

    poj3083 用DFS和BFS.通过这题,我对DFS和BFS再次有了初步的认识!!但是方向问题真的好绕啊..真心没搞懂,还是看了别人的才做出来的.下来我计划再做几道DFS和BFS的题.然后,再去独立 ...

  9. POJ - 2230 Watchcow(欧拉图)

    题目链接:点击查看 题目大意:给出一张由n个点和m条边组成的无向图,要求我们从点1为起点,沿着每条路都走一遍,正向边反向边都走恰好一次,最后到点1结束,题目需要我们输出路径 题目分析:欧拉图模板题目, ...

最新文章

  1. U型管铁球或将代替现代火箭喷射装置
  2. Windows 8实例教程系列 - 理解应用框架
  3. Oracle 双机热备 镜像 纯软 实战 配置教程 配置手册
  4. 如何使用 Docker 部署一个基于 Play Framework 的 Scala Web 应用?
  5. 集训队脱单大法:这是一道只能由学姐我自己出数据的水题
  6. 在Visual Studio上开发Node.js程序
  7. java url帮助类_Spring居然还提供了这么好用的URL工具类
  8. Caddy,一个用Go实现的Web Server | 比Apache速度快,比Nginx有个性
  9. RTP 时间戳的处理
  10. System学习笔记001---WIN10 win10按哪里哪里出现蓝色框
  11. 为确保网络中不同计算机,在计算机网络中,为确保网络中不同计算机之间能正确地传送和接收数据,它们必须遵循一组共同的规则和约定。这些规则、约定或标准通常被称为____。...
  12. 锋利jquery 网络版
  13. numpy中的linspace函数
  14. 小Q系列故事——世界上最遥远的距离
  15. pdf及word文档的读取 pyPDF2,docx
  16. 5.5 QR分解一:施密特正交化
  17. git 关联notepad++
  18. 关于 InputStream 类的 available() 方法
  19. 让AI用事实说话,千言第二届面向事实一致性的生成评测比赛启动
  20. HTML5新标签有哪些呢?

热门文章

  1. mysql子查询存到另一张表_MySQL数据库(11)----使用子查询实现多表查询
  2. 009_调色盘和高亮样式
  3. python tuple类型和list_Python 04_List 和 Tuple 类型
  4. 评价算法的性能从利用计算机资源角度,计算机专业数据结构课后练习题汇编
  5. 创建emp表 oracle,Oracle中创建和管理表详解
  6. 线性表adt的c语言表达,抽象数据类型定义(ADT)
  7. php lalaogu cn,php安装编译时错误合集
  8. mysql去掉两个最高分_如何计算去掉一个最高分和一个最低分后的平均分?
  9. layui 按钮点击一次后失效_00017-layui 对话框 layer.open 点击保存,按钮失效,保存完后,再恢复...
  10. Java数据结构与算法:排序算法