주제 주소 : http://codeforces.com/contest/1253/problem/D
질문의 의미 : 당신이 두 숫자를주고, n과 m. 대표 점 N은, 가장자리 해요. L 및 N (R)가 L과 통신하는 임의의 수의 두 지점 A, 두 통신 지점 (L, R)을 나타낸다면, 그것은 최소 Q를 만족시키기 위해 추가 에지 개수를 플러스 측을 만족하지 조건.
아이디어 : DFS 이미 상호 포인트 플러스 마크, x의 현재 컬렉션의 최대 지점을 찾아, X는 설정 자체가 또한있을 경우, 가장자리를 추가 적은이 시점에 연결되어 있지 세트 이상입니다 렌즈 테두리 가공 후 직접 혼입 DFS.
AC 코드 :
1 #INCLUDE <iostream> 2 #INCLUDE <cstdio> 3 #INCLUDE <CString을> 4 #INCLUDE <알고리즘> 5 #INCLUDE <벡터> 6 이용 공간을 성병; 7 형식 정의 긴 긴 LL; 8 CONST의 INT N = 200,005 ; 9 의 INT MK [N, N, m, CNT = 1 ; 10 의 INT NUM = 1 ; 11 벡터 < INT > g [N]; (12) 보이드 DFS ( INT의 TM) { 13 MK [(TM)] = . 1 ; 14 CNT가 = 최대 (CNT (TM)) (15) // 모든 지점이 그에 접속 DFS, 에지의 수는 200,000 개 이상의 아니다 초과 염려가없는 16 대 (자동 I은 : G [(TM)] ) IF (MK [I]) DFS (I) ;! // 자동 대신 int로 할 수있다 (17). } (18) 인 공극 솔 () { 19. INT ANS = 0 ] (20)이 그동안 (NUM <= N-) { 21은 그동안 (MK [NUM ]) NUM ++; // 반복 처리가 비 통신 찾을 22 IF (NUM <CNT)를 ANS ++ ; 23이다 ) DFS (NUM; 24 } 25 COUT << ANS << ENDL; 26 } 27 INT 의 main () { 28 CIN >> >> N m; 29 INT U, V; 30 대 ( INT 난 = 0 ; I <m은, I ++ ) { 31 CIN >> >> U V는; 32 g이었다 U] .push_back (V); 33 g이었다 V] .push_back (U); 34 } 35 졸 (); 36 반환 0 ; 37 }
자동 :이 일이 정말 사용하기 쉽고, 코드가 긴 아니라 큰 역할.
자동 요소 이후에 정의 된 형식 대신 자동 또한 INT 행을 변경 키워드, 사용할 수 있습니다 알고 있습니다. 그러나 우리가 모르는 어떤 피해 및 혜택, 여전히 이해, 학습.