poj 2230 Watchcow
来源:互联网 发布:中信淘宝卡积分规则 编辑:程序博客网 时间:2024/04/30 11:02
给你一幅连通的图,要求从起点1开始走,要经过每条边刚好两次,并且最终回到1起点,很明显,欧拉回路,dfs输出路径即可。#include<iostream>#include<string.h>#include<stdio.h>using namespace std;struct node{int v;int next;int vis;}g[100000];int adj[100000];int n,m,e,a,b;void add(int i,int j){ g[e].v=j; g[e].vis=0; g[e].next=adj[i]; adj[i]=e++;}void dfs(int v){ for(int i=adj[v];i!=-1;i=g[i].next) { if(!g[i].vis) { g[i].vis=1; dfs(g[i].v); } } printf("%d\n",v);}int main(){ while(scanf("%d%d",&n,&m)!=EOF) { e=0; memset(adj,-1,sizeof(adj)); for(int i=1;i<=m;i++) { scanf("%d%d",&a,&b); add(a,b); add(b,a); } dfs(1); } return 0;}