【Noi712]レベリング

ユニコム、チャイナユニコムでもポイント2内には速いがないことかもしれませんブロックを検討し
、すべて順番にこれら二つの点上のパスのエッジが、その後、存在する場合、答え+2を作ることができ、答えがあること:証明するために-1ポイントまたはポイント
同時に、溶液をパリティ、次に答えが決定され、具体的な実装は互いに素なセットを使用することができなければならない点の数と辺の奇数で見出されました

1つの#include <ビット/ STDC ++ H>
 2  使用して 名前空間STDを、
3  の#define N 200005
 4  int型N、M、X、Y、ANS、F [N]、E [N]、V [N]。
5  int型の検索(INT K){
 6      場合(K == F [K])戻りK。
7      戻り [K] F = 検索(F [K])。
8  }
 9  INT メイン(){
 10      のscanf(" %d個の%のD "、&​​N、&M)。
11      のためには、int型 i = 1 ; iがn = <; iは++)F [I] = I。
12      のためには、int型 i = 1 ; iがn = <; I ++は)Vを[I] = 1 13      のためにint型 I = 1 ; I <= M Iは++ ){
 14          のscanf(" %D%dの"、およびX&Y)。
15          X = 検索(X)
16          、Y = (y)を見つけます。
17          であれば(x == y)は、E [X] ++ ;
18          {
 19              Fは、[X] = yと、
20              V [Y] + = V [X]。
21              E [Y] + = E [X] + 1 22          }
 23      }
 24      のためのint型 i = 1 ; iは= <N; iは++ 25          であれば((F [I] == I)&&(V [I]%2!= E [I]%2))ANS ++ ;
26      のprintf(" %dの"、N- ANS)。
27 }
コードの表示

 

おすすめ

転載: www.cnblogs.com/PYWBKTDA/p/11619720.html