poj 2230 DFS
来源:互联网 发布:如何注册一个好的域名 编辑:程序博客网 时间:2024/06/04 23:33
传送门
题意:从1出发每条路正反走一遍后回到1点,输出路径。
思路:感觉就是一个DFS的过程,要想搜下去一个点和回来,那么之间这条路就是刚好走过正反各一次,而且从1深搜,最后也肯定回到1点。但是这里要标记访问过的点和边。如果下一个点未被访问过,那么直接搜下去即可;如果下一个点被访问过,但是之间的边未走过,那么就只是去了就回来,同时边被走过了;如果下一个点被访问过了,同时边也走过了,那么就不用理他了。
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int m,n,fst[10005],next[100005],node[100005],en;bool vis[10005],p[100005];void add(int u,int v){ next[en]=fst[u]; fst[u]=en; node[en]=v; en++;}void dfs(int u){ vis[u]=1; cout<<u<<endl; for(int i=fst[u]; i!=-1; i=next[i]) { int v=node[i]; if(!vis[v]) { p[i]=p[i^1]=1; dfs(v); cout<<u<<endl; } else { if(p[i]==0) { cout<<v<<endl; cout<<u<<endl; p[i]=p[i^1]=1; } } }}int main(){ int u,v; en=0; memset(fst,-1,sizeof(fst)); memset(vis,0,sizeof(vis)); memset(p,0,sizeof(p)); scanf("%d%d",&n,&m); for(int i=0; i<m; i++) { scanf("%d%d",&u,&v); add(u,v); add(v,u); } dfs(1); return 0;}
- poj 2230 DFS
- POJ 2230 DFS
- DFS POJ
- POJ DFS
- POJ 2230 Watchcow 欧拉路径 DFS
- poj 2230 Watchcow (DFS + 欧拉回路)
- poj 3083 DFS+DFS+BFS
- POJ 1753 ID+DFS
- poj 1950 数字dfs
- poj 1816(trie+dfs)
- POJ 3107 Godfather(DFS)
- poj 3620(DFS)
- poj 1020 DFS
- poj 2362Square(DFS)
- POJ 2676 Sudoku dfs
- POJ 2357 Labyrinth [DFS]
- poj 1011 dfs
- poj 1190 dfs(生日蛋糕)
- 使用mci播放多媒体
- 浅析malloc()的几种实现方式
- ivy的配置
- jsp页面 主表页面已审核 字表页面的按钮变灰 不能保存、删除等
- eclipse默认编码为GBK,修改为UTF8的方法 .
- poj 2230 DFS
- 从一道题谈C++中构造函数调用构造函数(转载)
- C#获取汉字首字母,多音拼音
- Silverlight中常用的尺寸
- 一些php错误
- Visual Studio 2010新功能-IntelliTrace(智能跟踪)
- C#项目引用完全相同dll文件的问题解决方法(反射)
- hadoop学习过程-2013.08.30.2--初次使用IKAnalyzer来切词--切词试验
- Struts2 控制台不打印异常的解决方案