연구 노트 --prufer 순서

prufer 순서는 무엇입니까?

바이두 백과 사전은 말한다 :

열 Prufer 루팅 해제 나무의 수는 컬럼의 숫자입니다. 열의 수에 환산 트리의 정점의 수의 열들을 구비함으로써 조합 적 수학 Prufer에서, 컬럼 길이 N 트리 Prufer 변환의 포인트 수를 N-2이다. 이는 간단한 반복적 인 방식으로 계산 될 수있다.


변환 및 루팅 해제 트리

1. 루팅 해제 나무 시퀀스 prufer을 설정

두 점까지의 단계를 반복 :

도 1이 발견되어 노드 (X)의 최소 수는, 부가되는 노드에 접속되어 \ (Prufer \) 번 시퀀스를 다음 X 삭제

2.prufer 순서는 루팅 해제 나무를 켜

포인트 설정 준비 ( \ (1,2,3,4 {, ..., N-} \) )

때까지 단계를 반복 \ (Prufer \) 시퀀스가 비어를 :

이 발견과 세트 포인트 의 현재 시퀀스가 존재하지 Prufer 전류와 작은 V 중 하나 \ (Prufer \) 제 1 시퀀스 번호 (\ U \)\ (U \)(\ V \) 에도 사이드 다음 삭제 \ (U \)\ (V \)

재산

  • 시퀀스 길이이다 \ (2-N- \) (넌센스)

  • 정도 (\ D_i \) 포인트 시퀀스에 나타나는 \ (d_i -1- \) 회 (그 정도 \ (D_i \) (1)의 순서로 첨가된다 (d_i -1- \) \ 시간)

  • \ (Prufer \) 순서 루팅 해제 나무 대응은 ,이 루팅 해제 나무를 추구의 수를 찾는 동등하다는 것을 의미 \ (Prufer \) 시퀀스를 변환 번호 순서, 생활 트리 문제 (오류) 문제


이름

1. [HNOI2004] 트리 카운트

질문의 의미 : 각 노드의 정도에 나무 감안할 때 (d_i \) \ 수, 나무의 조건을 충족하고자, 대답은보다 더 \ (1E17 \)

사례 : 상기로부터 이해 사이트, 각 포인트는 것이다 (Prufer을 \) \ 시퀀스에 나타나는 \ (d_i -1- \) 시간을 요구 나무의 수는 다음가되고, 상기 시퀀스 번호를 찾기 동등 MULTISET 순열 문제는 수식을 적용하는 방법 :

\ (ANS = \ FRAC {(N-2)!} {\ prod_ I = {1} ^ N (d_i-1)!} \)

이 문제는 다음과 같은 추가적인 특 문장 필요 \을 (\ 시그마 (-D_i. 1) \ n-NEQ -2- \) , 또는 하나 개의 지점 또는 \ (\ D_i = 0) , 본 명세서에서 반복되지 않는다 (그것은 완료되었지만)

계산 과정은 폭발 때문에 \ (longlongs을 \) , 품질 계수 저장 고정밀 분할 또는 화학적 분해 제어를 필요

2. [HNOI2008 명백하게 괴롭히는

질문의 의미는 : 소정의 경우와 같이, (\ D_i = -1 \)은 ,이 점에 제한 정도가 없다는 것을 의미

사례 :하자 \ (CNT는 \) 대표 \ (NEQ -1- \ d_i \ ) 점의 수, \ (SUM \) 대표 \을 (. \ 시그마 (-D_i 1) \) (단, 그 \ (d_i \ neq-을 1 \) ), 이러한 점을 상기 질문 (가정 만족하도록 \ (D_ {1-CNT를} \) 이다 \ (\ NEQ -1 \) 점) :

\ (p = \ FRAC 합 {!} {\ prod_ I = {1} ^ {} CNT (d_i-1)!} \)

총 이후 (N-2 \) \ 위치 (SUM \) \ 위치 결정 방법을 선택했다 \ (C_ {N-2} ^ {합} \) 종

나머지 \ ((N-CNT)는 \ ) 포인트 쉴 수 \ (\ (N-2- 합)) , 즉 위치 여러번 표시 ((N-CNT) ^ \ {N-합 -2} \) 의 선택

그래서이 있습니다 :

\ (ANS = C_ {N-2} ^ {I} * P * (N-컷) ^ {N-2} 투 \)

단순화를 얻을 수있다 :

\ (ANS = FRAC \ {(N-2)!} {(N-2 합)! \ 찌르기 (DI-1)!} * (N-CNT) ^ {N-2} 합계 \)

당신은 할, 첫 번째 질문과 접근 방식을 곱셈 - 덧셈 높은 정밀도를 사용할 수 있습니다

추천

출처www.cnblogs.com/Chtholly/p/11402692.html