zoukankan      html  css  js  c++  java
  • POJ 2230 (欧拉路)

    分析:

           基础的欧拉路算法,变化在于要求每条边正向和反向各走一遍。

           链式前向星构图,只要标记走过的单向边,边找边输出即可。

    code

    #include <iostream>
    #include <cstdio>
    using namespace std;
    struct node {
    	int v, ne;
    } edge[100009];
    int head[10009], vis[100009], cnt = 1;
    int n, m, x, y;
    void addedge (int u, int v) {
    	edge[++cnt].v = v;
    	edge[cnt].ne = head[u];
    	head[u] = cnt;
    }
    void EulerianP (int x) {
    	for (int i = head[x]; i != 0; i = edge[i].ne) {
    		if (!vis[i]) {
    			vis[i] = 1;
    			EulerianP (edge[i].v);
    		}
    	}
    	printf ("%d
    ", x);
    }
    int main()
    {
    	scanf ("%d %d", &n, &m);
    	for (int i = 1; i <= m; i++) {
    		scanf ("%d %d", &x, &y);
    		addedge (x, y);
    		addedge (y, x);
    	}
    	EulerianP (1);
    	return 0;
    }
    

      

  • 相关阅读:
    Wedding(2-SAT)
    JSOI2010 满汉全席
    2-SAT问题
    Tarjan求桥
    遥远的国度
    NOIP2014 联合权值
    部落冲突
    仓鼠找sugar
    2018.09.09 DL24 Day2总结
    php一些易犯的错误
  • 原文地址:https://www.cnblogs.com/keam37/p/3868387.html
Copyright © 2011-2022 走看看