만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

Count

시간 제한6초메모리 제한2048 MB

요약
루트가 있는 트리에서 정점 u로부터 거리 d 이내에 있는 정점끼리 이어진 간선 집합을, R과 C 호출을 M번 이하로 써서 만드는 문제입니다.
난이도

어려움10점 중 9점

유형
트리, 분할 정복, 동적 계획법
정답자
아직 제출이 없습니다

문제

이 문제는 대화형 문제이다.

5중항 (T,I,SV,SE,ι)(T, I, S_V, S_E, \iota)가 주어진다.

  • TT는 정점이 nn개인 루트 트리 T=(V,E)T = (V, E)이다. VV는 정점 집합, EE는 간선 집합이다. 정점에는 1,2,…,n1, 2, \ldots, n의 번호가 붙어 있고, 루트는 1번 정점이다.
  • II는 정보들의 집합이다. 특별한 원소가 두 개 있는데, 항등원 ϵ\epsilon과 불법 원소 ⊥\perp이다. 일반 정보는 정점 집합과 간선 집합이라는 두 속성을 가진다. 항등원은 간선 집합 속성만 가진다. 불법 원소는 두 속성이 모두 없다.
  • 일반 정보 o∈I∖{ϵ,⊥}o \in I \setminus \{\epsilon, \perp\}의 정점 집합 SV(o)S_V(o)는 VV의 원소 2개짜리 부분집합이다. 즉 SV(o)⊆VS_V(o) \subseteq V이고 ∣SV(o)∣=2|S_V(o)| = 2이다.
  • o∈I∖{⊥}o \in I \setminus \{\perp\}의 간선 집합 SE(o)S_E(o)는 EE의 부분집합이다. 항등원의 간선 집합은 공집합이다. 즉 SE(ϵ)=∅S_E(\epsilon) = \emptyset이다.
  • 트리의 모든 간선 e=(u,v)∈Ee = (u, v) \in E에 대해 정보 ι(e)∈I\iota(e) \in I가 있다. 이 정보의 정점 집합은 {u,v}\{u, v\}이고 간선 집합은 {e}\{e\}이다. 즉 SV(ι(e))={u,v}S_V(\iota(e)) = \{u, v\}, SE(ι(e))={e}S_E(\iota(e)) = \{e\}이다.

정보를 결합하는 연산은 RR과 CC 두 가지이다. 모든 a,b∈Ia, b \in I에 대해 r=R(a,b)r = R(a, b), c=C(a,b)c = C(a, b)라 하면 r,c∈Ir, c \in I이다.

  1. a=ϵa = \epsilon이면 r=c=br = c = b이다. b=ϵb = \epsilon이면 r=c=ar = c = a이다.
  2. a=⊥a = \perp이거나 b=⊥b = \perp이면 r=c=⊥r = c = \perp이다.
  3. 나머지 경우에 SE(a)∩SE(b)≠∅S_E(a) \cap S_E(b) \neq \emptyset이거나 ∣SV(a)∩SV(b)∣≠1|S_V(a) \cap S_V(b)| \neq 1이면 r=c=⊥r = c = \perp이다.
  4. 그 밖의 경우에는 SE(r)=SE(c)=SE(a)∪SE(b)S_E(r) = S_E(c) = S_E(a) \cup S_E(b), SV(r)=SV(a)S_V(r) = S_V(a), SV(c)=SV(a)⊕SV(b)S_V(c) = S_V(a) \oplus S_V(b)이다. 여기서 ⊕\oplus는 대칭차이고, A⊕B=(A∪B)∖(A∩B)A \oplus B = (A \cup B) \setminus (A \cap B)이다.

트리 TT에서 두 정점 사이의 거리는 두 정점을 잇는 유일한 단순 경로가 지나는 간선의 수이다.

질의가 qq개 주어진다. 각 질의는 정점 uu와 음이 아닌 정수 dd로 이루어진다. XX는 uu까지의 거리가 dd 이하인 정점들의 집합이다. Y={(a,b)∈E∣a,b∈X}Y = \{(a, b) \in E \mid a, b \in X\}는 양 끝점이 모두 XX에 속하는 간선들의 집합이다.

ϵ\epsilon과 모든 ι(e)\iota(e) (e∈Ee \in E)에서 출발해 유한 번의 RR, CC 호출로 o≠⊥o \neq \perp이고 SE(o)=YS_E(o) = Y인 정보 oo를 만들 수 있다는 것이 증명되어 있다. 특히 d=0d = 0이면 출력은 항등원 ϵ\epsilon이어야 한다.

각 질의마다 위 조건을 만족하는 정보 oo를 만들어야 하며, RR과 CC 호출 횟수의 합은 MM을 넘을 수 없다.

제한

모든 테스트 케이스에 대해 1≤n≤2×1051 \leq n \leq 2 \times 10^5, 1≤q≤1061 \leq q \leq 10^6이다. 각 질의에 대해 1≤u≤n1 \leq u \leq n, 1≤d≤n−11 \leq d \leq n-1이다.

테스트 케이스n=n=q=q=속성M=M=
111000100010410^4500500
222000200010410^4500500
3,43,410510^510610^6A55
5,65,66×1046 \times 10^46×1046\times 10^4B5050
776×1046 \times 10^46×1046 \times 10^4B55
8810510^510510^5B55
99750075005×1045 \times 10^4C500500
101010410^45×1045 \times 10^4500500
11111.5×1041.5 \times 10^45×1045 \times 10^4500500
12122×1042 \times 10^45×1045 \times 10^45050
13132.5×1042.5 \times 10^45×1045 \times 10^455
14143×1043 \times 10^410510^555
15156×1046 \times 10^410610^6D55
16166×1046 \times 10^410610^655
17178×1048 \times 10^410610^655
181810510^510610^655
19191.5×1051.5 \times 10^510610^655
20202×1052 \times 10^510610^611
  • 속성 A: 모든 i=1,2,…,n−1i = 1, 2, \ldots, n-1에 대해 i+1i+1의 부모는 ii이다.
  • 속성 B: 모든 질의에서 u=1u = 1이다.
  • 속성 C: 모든 질의에서 d≤100d \leq 100이다.
  • 속성 D: 모든 질의에서 d≥1000d \geq 1000이다.

예제1

  1. 예제 1

    입력
    2
    1 2
    1
    2 1
    
    예상 출력
    1 2