poj 2230 欧拉回路
2011-12-22 11:18
239 查看
题意,一个图,要将每条边恰好遍历两遍,而且要以不同的方向,还要回到原点。
直接dfs一下就好了,vis[]标记边是否访问,不会的仔细模拟一遍哪个dfs就好了
View Code
直接dfs一下就好了,vis[]标记边是否访问,不会的仔细模拟一遍哪个dfs就好了
View Code
import java.io.*; import java.util.*; import java.math.*; class Edge{ int v,next; boolean vis; Edge (int v,int next){ this.v=v; this.next=next; this.vis=false; } } class Graph{ static int MAXN = 10010; static int n, m, size; static int[] ans = new int[MAXN*3]; static int[] head = new int[MAXN]; static Edge[] edge = new Edge[MAXN*10]; Graph(){ Arrays.fill(head, -1); size=0; } void add_edge(int u,int v){ edge[size]=new Edge(v,head[u]); head[u]=size++; } void dfs(int u){ for(int i=head[u];i!=-1;i=edge[i].next){ if(!edge[i].vis){ edge[i].vis=true; dfs(edge[i].v); } } System.out.println(u); } } public class Main{ public static void main(String[] args){ Scanner cin = new Scanner (System.in); while(cin.hasNext()){ Graph a=new Graph(); a.n=cin.nextInt(); a.m=cin.nextInt(); for(int i=1;i<=a.m;i++){ int u=cin.nextInt(); int v=cin.nextInt(); a.add_edge(u, v); a.add_edge(v, u); } a.dfs(1); } } }
相关文章推荐
- (POj 2230)Watchcow [有向欧拉图] 输出欧拉回路
- poj 2230 (简单欧拉回路)
- poj 2230 欧拉回路
- POJ2230 Watchcow(欧拉回路 + dfs)
- POJ 2230 Watchcow 欧拉回路
- poj 2230 Watchcow 欧拉回路
- Poj 2230 Watchcow【欧拉回路】
- 欧拉回路输出(DFS,不用回溯!)Watchcow POJ 2230
- POJ 2230 Watchcow (欧拉回路)
- POJ 2230 欧拉回路变型
- POJ 2230 欧拉回路
- poj - 2230 - Watchcow(欧拉回路)
- 【POJ - 2230 Watchcow】 欧拉回路
- POJ2230 Watchcow【欧拉回路】
- [欧拉回路] poj 2230 Watchcow
- POJ - 2230 (欧拉回路)
- POJ 2230 (欧拉回路)
- POJ 2230 Watchcow(欧拉回路)
- POJ 2230 Watchcow( 欧拉回路 )
- poj 2230 Watchcow(有向图的欧拉回路)