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;}