Logo
(追記) (追記ここまで)

28500번 - Улитка на склоне 서브태스크다국어

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB345527.778%

문제

Тихо взобравшись на вершину горы Фудзи, улитка хочет спуститься вниз. На склоне горы находится система тропинок, образующая подвешенное двоичное дерево.

Дерево содержит $n$ вершин, соединенных $n-1$ тропинками. На вершине горы находится корень дерева. В некоторых вершинах тропинка заканчивается, они являются листами дерева. От каждой вершины, кроме листьев, вниз по склону отходят ровно две тропинки, одна ведет налево, а другая --- направо.

Улитка хочет, начав в корне, спуститься по дереву и добраться до одного из листьев. Она будет спускаться, перемещаясь вниз по тропинкам. В каждой вершине по пути улитка может выбрать одно из двух направлений дальнейшего спуска: налево или направо.

Улитка может начать спуск в корне в любом из двух направлений. В каждой из последующих вершин улитка делает поворот, если она выбрала направление, отличающееся от выбранного в предыдущей вершине.

Улитке неудобно поворачивать, поэтому на всем пути от корня до листа улитка готова сделать не более $k$ поворотов.

Пронумеруем вершины дерева от 1ドル$ до $n,ドル при этом корень получит номер 1ドル$. Вам дано $q$ запросов. Каждый запрос описывается одной вершиной $u_i$. Требуется найти количество листьев, в которых улитка сможет завершить свой спуск, если она будет спускаться из корня, сделает не более $k$ поворотов, и по пути пройдет через вершину $u_i$.

입력

В первой строке даны три целых числа $n,ドル $k$ и $q$ --- количество вершин в дереве, максимальное количество поворотов, которое улитка готова сделать, и количество запросов (3ドル \le n \le 200,000円$; 0ドル \le k \le n$; 1ドル \le q \le 200,000円$).

В следующих $n$ строках дано описание дерева. Первым в $i$-й строке дано целое число $t_i$ --- количество тропинок, выходящих из $i$-й вершины ($t_i = 0$ или $t_i = 2$). Если $t_i = 2,ドル то далее в той же строке даны два целых числа $l_i$ и $r_i$ --- номера вершин, в которые ведёт соответственно левая и правая тропинка из вершины $i$ (1ドル \le l_i, r_i \le n$). Гарантируется, что это описание соответствует подвешенному двоичному дереву с корнем в вершине 1ドル$.

В следующих $q$ строках даны запросы. В $i$-й строке дано одно целое число $u_i$ --- номер вершины, через которую должна пройти улитка на своем пути (1ドル \le u_i \le n$).

출력

Для каждого запроса, выведите ответ на него в новой строке --- количество листьев, в которых улитка может завершить свой маршрут, если она начинает в корне, спускается вниз, на своем пути совершает не больше $k$ поворотов и проходит через вершину $u_i$.

제한

서브태스크

번호배점제한
111

$n \le 500,ドル $q \le 500,ドル Во всех запросах $u_i$ является листом

212

$n \le 500,ドル $q \le 500$

310

$k = n$

414

$k = 0$

519

Во всех запросах $u_i$ является листом

634

Без дополнительных ограничений

예제 입력 1

7 1 4
2 2 4
0
2 6 5
2 3 7
0
0
0
1
4
3
5

예제 출력 1

3
2
1
0

힌트

(a) Структура дерева в тесте из примера. (b) Улитка должна пройти через вершину 1ドル,ドル она может завершить путь в листах 2ドル,ドル 6ドル$ и 7ドル$.
(c) Улитка должна пройти через 4ドル,ドル она может завершить путь в 6ドル$ и 7ドル$. (d) Улитка должна пройти через 3ドル,ドル она может завершить путь только в листе 6ドル$.
(e) Улитка должна пройти через 5ドル,ドル однако путь до этой вершины уже содержит больше одного поворота. Поэтому не существует листа, в котором улитка могла бы завершить путь, выполнив все ограничения.

출처

Olympiad > Russian Olympiad in Informatics > Russian Olympiad in Informatics 2023 5번

채점 및 기타 정보

  • 예제는 채점하지 않는다.
(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /