POJ1041 John's trip 欧拉回路路径查找
来源:互联网 发布:淘宝图片如何ps 编辑:程序博客网 时间:2024/05/21 17:20
题目链接:http://poj.org/problem?id=1041
题目大意:一个城镇有n个二叉路口,这些路口由m条街道连接,某人想要从某个路口出发,经过所有的街道且每条街道只走一次,再回到出发点,让找出一个可行的路线,依次输出经过的街道编号,如果有多条路线,选择字典序最小的一条输出。
分析:经典的欧拉回路问题。因为是要输出街道编号,建图需要一些技巧。
实现代码如下:
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int M=45;const int N=1995;int gra[M][N]; //gra[i][j]=k表示点x经过边j到达点kint ind[M]; //每个节点的度int ans[N],cnt; //最佳方案bool vis[N]; //标记每条街道是否被访问int maxn; //纪录最大的街道编号void dfs(int s){ for(int i=1;i<=maxn;i++) if(gra[s][i]&&!vis[i]) { vis[i]=true; dfs(gra[s][i]); ans[cnt++]=i; }}int main(){ int start; int u,v,w; while(scanf("%d%d",&u,&v)) { if(u==0&&v==0) break; start=min(u,v); maxn=0; cnt=0; memset(gra,0,sizeof(gra)); memset(ind,0,sizeof(ind)); memset(vis,false,sizeof(vis)); while(u!=0&&v!=0) { scanf("%d",&w); gra[u][w]=v; gra[v][w]=u; ind[u]=!ind[u]; //我们只需要纪录度数的奇偶性即可 ind[v]=!ind[v]; maxn=max(maxn,w); scanf("%d%d",&u,&v); } int k=1; for(;k<M;k++) //查找节点度数为偶数的点 if(ind[k]) break; if(k<M) { puts("Round trip does not exist."); continue; } dfs(start); for(int i=cnt-1;i>=0;i--) printf("%d ",ans[i]); printf("\n"); } return 0;}
0 0
- POJ1041 John's trip 欧拉回路路径查找
- poj1041 John's trip(欧拉回路+输出路径)
- POJ1041 John's trip(欧拉回路+打印路径)
- poj1041 John's trip (欧拉回路)
- poj1041 John's trip,无向图求欧拉回路路径
- POJ1041 John's trip(欧拉回路 + 并查集 + dfs)
- John's trip 欧拉回路输出路径
- POJ 1041 John's trip(欧拉回路+输出路径)
- POJ1041 John's trip
- POJ1041 John's trip
- poj1041-John's trip
- poj1041 John's trip【无向图欧拉回路判定+输出路径】
- poj1041 John's trip (无向图求欧拉回路方案)
- POJ 1041 - John's trip 输出欧拉回路路径边..通用做法
- POJ 1041 John's trip 欧拉回路(输出路径)
- POJ 1041 John's trip (欧拉回路)
- poj 1041 John's trip(欧拉回路)
- poj 1041 John's trip 欧拉回路
- java.lang.OutOfMemoryError: PermGen space PermGen space解决方法(转)
- TCP包头格式详解
- 算法竞赛入门经典:第七章 暴力求解法 7.18倒水问题
- PLSQL中文乱码问题解决办法
- CSS中对字体进行设置
- POJ1041 John's trip 欧拉回路路径查找
- java支持跨平台获取cpuid、主板id、硬盘id、mac地址 (兼容windows、Linux)
- Deep Learning的训练工具~caffe
- 存储过程 视图 触发器 分页
- android全屏去掉title栏的多种实现方法
- Accepted Necklace
- 算法竞赛入门经典:第七章 暴力求解法 7.18 广度优先搜索之八数码问题
- 接口下多个实现方法的解决方案
- C# 静态类