도 Tarjan 및 통신 중에

포인트 컷 : 점 X를 제거하는 비 - 방향 그래프는 두 개 (또는 그 이상)으로 분할되고

두 개 (또는 그 이상)에 관한 그래프를 분할하지 않고, 하나의 엣지를 제거 X : 절삭 날

타임 스탬프 : 번호 검색 트리를 탐색 DFN

회고전 값 : 최소 점에 하위 트리의 하위 트리와 비 검색 트리까지

커트 결정 및 최첨단

1  공극 tarjan ( INT (X), INT의 in_edge) {
 2      DFN [X] = 로우 [X] = ++ NUM;
3       ( int로 I = 헤드 [X] I, I = NEX [I]) {
 도 4          의 INT Y = 버전 [I];
도 5          의 경우 (! DFN [Y]) {
 6              tarjan (Y, I);
7              로우 [X] = 분 (저 [X], 로우 [Y]);
8 개의              경우 (저 [Y]가> DFN는 [X])
 9                  다리 [I]가 다리 = [내가 ^ 1 ] = ;
10          } 다른 경우 (I = (in_edge ^! 1 ))
 (11)              로우 [X] = 분 (저 [X] DFN [Y]);
12      }
 13 }
1  공극 tarjan ( 의 INT (X)) {
 2      DFN [X] = 로우 [X] = ++ NUM;
3      INT의 플래그 = 0 ;
4       ( int로 I = 헤드 [X] I, I = NEX [I]) {
 5          의 INT Y = 버전 [I];
(6)          의 경우 (! {DFN [Y])
 7              tarjan (Y);
8              로우 [X] = 분 (저 [X], 로우 [Y]);
도 9              의 경우 (저 [Y]> = DFN [X]) {
 10                  플래그 ++ ;
11                  의 경우 (X! = 1|| 플래그> 1 ) 컷 [X] = ;
12              }
 13          } 다른 로우 [X] = 분 (저 [X] DFN [Y]);
14      }
 15 }

에지 포인트는 감소하지 : DFS를 사용하여 표시 없음

포인트 포인트 감소 : %%%

https://github.com/lydrainbowcat/tedukuri/blob/master/%E9%85%8D%E5%A5%97%E5%85%89%E7%9B%98/%E6%AD%A3%E6% 96 % 87 % E5의 % 8C % 85 % E5의 % 90 % AB의 %의 E7의 %의 9A의 % 84 % E7의 %의 A8의 % 8B % E5의 %의 BA의 %의 (8F)의 %의 E7 % 89 % 87 % E6 % AE % B5 / 0x66 % 20tarjan_dcc_euler. CPP

추천

출처www.cnblogs.com/rign/p/11108844.html