UVAILIVE-3644:X-Palosives


X-Palosives
ソース:UVAILIVE
ラベル:データ構造、検索集
参考資料:
似たようなテーマ:
テーマ
A secret service developed a new kind of explosive that t tainits volatile property only when a speciifiicassisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisisiexplosive.For example、the binding pairs A+B、B+C、A+C(three pairs、three compunds)reult in in in explosive、while A+B、B+C、A+D(three pairs、four copounds)does not.You arararnot a secret asecret agaasecret agtototodedededededededededededededededededededededededededededededededegggggininininininininininininininininininininininininininininggggggggggggggggggggggggggggo ship.However,So,after plcing a set of pairs,if you receive e e e e e e e e e e e e e e pairs,if you receive e e e e pair that produce a explosion with some of the pairs already stock,you mutrefuse,Anheotemute+atotoshshe+thethethethe.emimimimimimimimimimimimimimimimimitttttttttttttttttttttfofofofofofofofofofose,Antrtrtrtrtrtrtrtrtre+the,Antrtrtre+the.eem.eeeeee+ E,E+G,F+H.You would accept the first four pairs but then refuse E+G since itwould be possible to makethe follwing explosive the previous pairs:A+B、G+B、A+E、Even、Even(4 pairs with ffffffffffffffffffffffffffffthethethethethethemimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimisequence of binding pairs.
入力
The input will contain several test cases、each of them as describelow.Cosecutive test cases are separated by a single blankライン.Instead of lettersrswe will use integerst to represent compunds.The e inininininininininininininininininininininininininininininininininininininininininininininininininininininininininininininininininstststststststststinininininininininininininininininininininininininininininininand 105)separated by a single space,representing a binding pair.Each test case ends in a line with the number'-1'.You may asume thatのrepeated binding pairs appars in the input.
出力
For each test case,the output must follow the description below.A single line with the number of refusals.
入力サンプル
1 2 3 3 3 5 1 2 4 1 4 1 2 1 2 6-1
出力サンプル
3
タイトルの大意
ある種類の簡単な化合物は2種類の異なる元素からなります.このような簡単な化合物を車に積み込みます.もし車の中にk個の簡単な化合物があったら、それらはちょうどk種類の元素を含んでいます.ですから、化合物を手にするたびに、爆発を起こすかどうかを確認します.もしそうであれば、車の積み込みを拒否します.でないと、車に積み込むべきです.車に積んでいない化合物がどれぐらいありますか?
問題を解く構想
そして思想を集める.各簡単な化合物を一つの辺に想像します.二つの元素は端の二つの頂点です.ある化合物を集合に加えると、ループを構成すると爆発が発生します.
参照コード
#include
#define MAXN 100005
int pa[MAXN];

int find(int x){
	return pa[x]==x ? x : find(pa[x]);
}

int main(){
	int a,b;
	while(~scanf("%d",&a)){
		for(int i=0;i<MAXN;i++){
			pa[i]=i;
		}
		
		int cnt=0;
		while(a!=-1){
			scanf("%d",&b);
			int ra=find(a);
			int rb=find(b);
			if(ra==rb) cnt++;
			else pa[rb]=ra;
			scanf("%d",&a);
		}
		
		printf("%d
"
,cnt); } return 0; }