オイラーツアー互いに素セット--HDU1878

トピックリンク

タイトルの意味

欧拉欧拉欧拉欧拉欧拉オイラーオイラー

トピック分析

各ノードの次数が偶数、かつ各通信ポイントが、そこ必要オイラーある限り

ボーダー度で、ライン上の接続性チェックとセットで記録することができます

本当に最もシンプルで、他のグラフ理論と比較すると、

トピックコード

書式#include <iostreamの> 
書式#include <stdio.hに> 
する#include < 文字列の.h>
 使用して 名前空間はstdを、
typedefの長い 長いLL。
const  int型 MAXN = 1E3 + 7 INTのN、M、A、B、根、F [MAXN]、CNT [MAXN]。
ブールフラグ。
INT  GETINT X){
     場合(F [X] == x)をリターンX。
    他の リターン F [X] = GET (F [X]); 
} 
ボイドは、(参加int型のx、int型のY){
     int型FX = 取得(X)、FY = GET (Y)。
    F [FX] = FY。
} 
int型のmain(){
     一方(scanf関数(" %のD "、&N)){
         場合(N == 0戻り 0 ; 
        scanf関数(" %のD "、&M)。
        以下のためにint型 I = 1 iは++; iが<= N 
            F [i]は = I。
        memset(CNT、0はsizeof (CNT))。
        以下のためのint型 I = 1 ; I <= M; iは++ ){ 
            scanf関数(" %d個の%のD "、&​​、&B)。
            CNT [A] ++、CNT [B] ++ ; 
            (a、b)が参加。
        } 
        フラグ = 
        ルート = 0 ;
        以下のためにint型 I = 1、私は++;;私は<= N 場合取得 ++ ==私は、(i))のルートを以下のためにint型 I = 1 iが++; iが<= N であれば(CNT [I]%2)フラグ= もし(フラグ&&ルート== 1)のprintf(" 1つの\ n " );
        のprintf(" 0 \ N " ); 
    } 
}

 

おすすめ

転載: www.cnblogs.com/helman/p/11284738.html