hdu 2230 watchcow 【图论-欧拉回路-遍历-输出路径】
来源:互联网 发布:手机计算道路软件 编辑:程序博客网 时间:2024/06/05 01:10
Watchcow Time Limit: 3000MS Memory Limit: 65536K Special Judge
Description
Bessie’s been appointed the new watch-cow for the farm. Every night, it’s her job to walk across the farm and make sure that no evildoers are doing any evil. She begins at the barn, makes her patrol, and then returns to the barn when she’s done.
If she were a more observant cow, she might be able to just walk each of M (1 <= M <= 50,000) bidirectional trails numbered 1..M between N (2 <= N <= 10,000) fields numbered 1..N on the farm once and be confident that she’s seen everything she needs to see. But since she isn’t, she wants to make sure she walks down each trail exactly twice. It’s also important that her two trips along each trail be in opposite directions, so that she doesn’t miss the same thing twice.
A pair of fields might be connected by more than one trail. Find a path that Bessie can follow which will meet her requirements. Such a path is guaranteed to exist.
Input
* Line 1: Two integers, N and M.
* Lines 2..M+1: Two integers denoting a pair of fields connected by a path.
Output
* Lines 1..2M+1: A list of fields she passes through, one per line, beginning and ending with the barn at field 1. If more than one solution is possible, output any solution.
Sample Input
4 5
1 2
1 4
2 3
2 4
3 4
Sample Output
1
2
3
4
2
1
4
3
2
4
1
Hint
OUTPUT DETAILS:
Bessie starts at 1 (barn), goes to 2, then 3, etc…
题目大意:输出所给欧拉图的遍历路径
AC代码:
# include <cstdio># include <cstring># define MAXN 100005# define MAXM 2000005struct EDGE{ int to; int next;}edge[MAXM];int tot;int head[MAXN];int vis[MAXN];void Init(){ tot = 0; memset(head, -1, sizeof(head)); memset(vis, 0, sizeof(vis));}void Addedge(int u, int v) //邻接表存放图{ edge[tot].to = v; edge[tot].next = head[u]; head[u] = tot++; edge[tot].to = u; edge[tot].next = head[v]; head[v] = tot++;}void Dfs(int u){ for (int i = head[u]; i + 1; i = edge[i].next) { int v = edge[i].to; if (!vis[i]) { vis[i] = 1; Dfs(v); } } printf("%d\n", u);}int main(void){ int n, m; while (~scanf("%d %d", &n, &m)) { Init(); while (m--) { int u, v; scanf("%d %d", &u, &v); Addedge(u, v); } Dfs(1); } return 0;}
- hdu 2230 watchcow 【图论-欧拉回路-遍历-输出路径】
- POJ 2230 - Watchcow 输出欧拉回路点的路径...
- poj 2230 Watchcow 无向欧拉回路求路径
- POJ 2230 Watchcow(欧拉回路:输出点轨迹)
- POJ 2230 Watchcow 欧拉回路输出解
- POJ2230 Watchcow 欧拉回路路径
- Poj 2230 Watchcow (欧拉回路)打印欧拉回路路径
- POJ 2230 Watchcow 【欧拉回路】
- poj 2230 Watchcow (DFS + 欧拉回路)
- poj 2230 Watchcow(欧拉回路)
- poj - 2230 - Watchcow(欧拉回路)
- POJ 2230 Watchcow 欧拉回路题解
- [欧拉回路] poj 2230 Watchcow
- POJ 2230 Watchcow(欧拉回路)
- POJ 2230 Watchcow (欧拉回路)
- poj 2230 Watchcow 欧拉回路
- POJ 2230 Watchcow (欧拉回路)
- POJ 2230 Watchcow( 欧拉回路 )
- 搭建平台区别
- SQL Sever数据库的学习
- QT写一个记事本⑦
- 递归基础之N皇后问题
- Markdown编辑器(Atom,Markdownpad2,Typora)初比较
- hdu 2230 watchcow 【图论-欧拉回路-遍历-输出路径】
- eclipse清除运行Maven build...后积累的配置项
- PHP实现页面静态化——全部纯静态化
- 4.sqoop RDBMS与Hive数据互导
- 设计模式之桥接模式
- 二叉树:搜索二叉树和完全二叉树
- jishu
- HDU 1879 继续畅通工程(kruskal,prim)
- Ubuntu 16.04 安装iNode客户端