互いに素セット
概要:
1. 2つの互いに素なセットを見つけるには、アレイ内のチェックのセットを使用し、FA []配列への更新することができます。
検索()を使用したとき二つの値が同一の祖先であるかどうか2.検索FA []配列が決定されないが、それが圧縮されていない値に可能な経路です。
3.A、B社は、男性または女性である可能性が高いです
#include <ビット/ STDC ++ H> 使用して 名前空間STDを、 INTのN、M、Q、P、A、B、S1、S2。 int型 FA [ 10005 ]; int型の検索(INT X) { 場合(FA [X] == x)をリターンX。 戻り FAを[X] = (FA [X])を見つけます。 } ボイド HB(int型のx、int型のY) { 場合 FA [(y)を検索] =((X)を検索する=(y)を見つける!)(x)を見つけます。 } int型のmain() { CIN >> N >> M >> P >> Q。 以下のための(int型I = 1 ; I <= N。i)は、FA ++を[I] = I。 用(int型 iは= 1 ; I <= P iは++ ) { CIN >> A >> B。 もし(< 0)、A = -a、B = - B。 HB(B) } のための(int型 i = 1 ; iが<= N; iが++ ) 場合((I)==検索(検索1 S1 ++))を、 以下のために(int型 I = 1 ; I <= M; iは++)FA [I] = I。 以下のための(int型私は=1 ; I <= Q; 私は++ ) { CIN >> A >> Bと、 もし(< 0)、A = -a、B = - B。 HB(B) } のために(int型 I = 1 ; I <= M; iは++ ) 場合(見つける(I)==(見つける1))S2を++ 。 COUT << 分(S1、S2)。 リターン 0 ; }