タイトルの意味
欧拉欧拉欧拉欧拉欧拉オイラーオイラー
トピック分析
各ノードの次数が偶数、かつ各通信ポイントが、そこ必要オイラーある限り
ボーダー度で、ライン上の接続性チェックとセットで記録することができます
本当に最もシンプルで、他のグラフ理論と比較すると、
トピックコード
書式#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 GET(INT 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 " ); } }