(CBT) 고속철도 네트워크

고속 철도 네트워크

설명 :

국가 건설 도시를 연결하는 고속 철도 라인의 숫자로 구성 고속철도 네트워크를. 기존 고속철도 구조가 통계 테이블로 분류 될 수있는 상기 표 고속 철도 선에 직접 접속 된 두 도시마다. 건설 (고속 철도 선 최대를 통해만큼 간접적으로, 그러나 반드시 직접 고속 철도 선에 연결) 국가 당 두 도시 간 고속 철도 교통을 달성 할 수있는 대상 국가입니다. 것 또한 빌드와 같은 고속 철도 라인의 최소 번호를 물어?

설명을 입력합니다 :

시험 라인 (1)은 각각 두 개의 양의 정수를 주어, 도시의 수는 N이다 (<1,000) 기존 고속철도 줄 수 M. 고속철도 라인에 대응하는 M 행 M 다음, 각 라인은 양의 정수 쌍 직접 고속 행 번호 각각 연결된 두 도시 문서 주어진다. 단순화하기 위해, 도시는 1 N. 번까지 번호가 매겨진

출력 설명 :

출력의 라인에 또한 고속철도 라인의 최소 수를 구축해야합니다.

샘플 입력 :

9 8

1 2

1 3

2 4

3 4

5 7

5 6

6 7

8 9

샘플 출력 :

프롬프트 달성하기 :

가능한 깊이 우선 또는 너비 우선 탐색을 해결하기위한 통신 구성 요소를 감소시키기 위하여 실제 문제의 수도 MFSet를 해결할 수있다.

#INCLUDE <STDIO.H>
사용법 #include <stdlib.h>
INT Vset으로 [100];
INT findset INT (X)
{
	반면 (Vset으로 [X]! = 0)
		X = Vset으로 [X];
	반환 X;
}
() 주요 int로
{
	INT의 M, N, I, A, B, VA, VB, 카운트;
	scanf와 ( "%의 D", N);
	위한 (I = 0; I는 <N; I ++는)
		Vset으로 [I] = 0;
	scanf와 ( "%의 D", m);
	대 (나는 <m; 나는 0 = I ++)
	{
		scanf와 ( "% D % D ', A, 및 B);
		VA = findset (a);
		VB = findset (b);
		경우 (VA! = VB)
			Vset으로 [VA ​​= VB;
	}
	카운트 = 0;
	위한 (I = 0; I는 <N; I ++는)
	{
		경우 (Vset으로 [I] == 0)
			++ 계산;
	}
	의 printf ( "%의 D"카운트-1);
	0을 반환; 

}

  

 

추천

출처www.cnblogs.com/KIROsola/p/11909403.html