欧拉回路模板

package com.supermars.practice;

public class 欧拉回路 {
    final static int MAXN=1<<10;
    static int G[][]=new int[MAXN][MAXN];
    static int vis[][]=new int[MAXN][MAXN];
    static int n;
    /**
     * 欧拉道路/回路
     * @param u 起点
     */
    void euler(int u) {
        for (int v = 0; v < n; v++)
            if (G[u][v] == 1 && vis[u][v] == 0) {
                vis[u][v] = vis[v][u] = 1; // 有向图去除vis[v][u]
                euler(v);
                System.out.printf("%d %d\n", u, v);
            }
    }
}


你可能感兴趣的:(算法,ACM)