QOJ.ac

QOJ

حد الوقت: 1.0 s حد الذاكرة: 256 MB مجموع النقاط: 100 قابلة للهجوم ✓

#15424. Черепашачий суп

الإحصائيات

Умова

Компанія складається з $n$ учасників з ідентифікаторами працівників $1, 2, \dots, n$. Учасник $1$ є босом, а кожен інший учасник $i$ ($2 \le i \le n$) має безпосереднього керівника $f_i$ ($1 \le f_i < i$). Структура компанії утворює кореневе дерево з учасником $1$ у корені.

У цій компанії учасник $a$ знає учасника $b$ тоді й лише тоді, коли виконується принаймні одна з таких умов:

  • $a = b$.
  • $b$ є предком $a$. Іншими словами, існує послідовність $u_1, u_2, \dots, u_k$ ($2 \le k$) така, що $u_1 = a$, $u_k = b$, і $u_i = f_{u_{i-1}}$ для всіх $2 \le i \le k$.
  • $b$ є безпосереднім сином $a$ ($b$ є безпосереднім підлеглим $a$). Іншими словами, $f_b = a$.

Зауважте, що відношення знайомства не обов'язково є симетричним; те, що $a$ знає $b$, не означає, що $b$ знає $a$.

Зараз учасники грають у гру. У кожному раунді певний учасник $m$ виступає в ролі відгадувача, а інший учасник $p$ є ціллю. Гарантується, що $p$ — це учасник, якого $m$ не знає.

Щоб визначити $p$, $m$ ставить послідовність запитань. Для кожного запитання $m$ вибирає ID $x$ і запитує: «Чи знає $p$ учасника $x$?» Учасник $p$ завжди відповідає правдиво. Крім того, якщо $x = p$, то $p$ окремо повідомляє, що він і є учасником $x$, після чого гра завершується.

Кожне запитання має вартість переміщення на основі дерева компанії. Якщо $i$-те запитання стосується учасника $x_i$, вартість цього запитання дорівнює $dis(x_{i-1}, x_i)$, де $dis(a, b)$ — кількість ребер на єдиному шляху між $a$ і $b$ в дереві. Для першого запитання ($i = 1$) вартість дорівнює $dis(m, x_1)$.

Учасник $m$ надзвичайно розумний і використовує оптимальну стратегію, щоб мінімізувати загальну вартість, необхідну для гарантованого завершення гри в найгіршому випадку. Ваше завдання — обчислити цю мінімальну вартість у найгіршому випадку для кожного можливого відгадувача $m \in \{1, 2, \dots, n\}$.

Якщо учасник $m$ вже знає всіх у компанії, відповідь для цього $m$ дорівнює $0$.

Вхідні дані

Перший рядок вхідних даних містить ціле число $n$ ($1 \le n \le 10^5$), що позначає загальну кількість учасників у компанії.

Другий рядок містить $n - 1$ цілих чисел, що позначають $f_2, f_3, \dots, f_n$. Виконується умова $1 \le f_i < i$.

Вихідні дані

Виведіть один рядок, що містить $n$ цілих чисел через пробіл, які позначають відповіді для випадків $m = 1, m = 2, \dots, m = n$.

Приклади

Вхідні дані 1

3
1 1

Вихідні дані 1

0 2 2

Вхідні дані 2

5
1 1 3 2

Вихідні дані 2

4 3 3 4 4

Вхідні дані 3

6
1 1 2 2 3

Вихідні дані 3

4 3 5 4 4 6

Примітка

Щоб пояснити випадок $m = 4$ у прикладі 3: По-перше, як показано на діаграмі, учасник $m$ не знає учасників $\{3, 5, 6\}$. Одна з можливих оптимальних стратегій полягає в тому, щоб спочатку запитати, чи знає $p$ учасника $2$, що коштує $1$. Якщо так, це означає, що $p = 5$, і наступним кроком є запитати про учасника $5$, щоб завершити гру із загальною вартістю $2$. Інакше продовжуємо запитувати, чи знає $p$ учасника $3$, що коштує $2$. Якщо $p = 3$, гра закінчується із загальною вартістю $3$. Інакше це означає, що $p = 6$, і наступний крок коштує $1$, щоб запитати про учасника $6$, завершуючи гру із загальною вартістю $4$. Отже, ця стратегія вимагає вартості $4$ у найгіршому випадку. Можна довести, що жодна інша стратегія не може ще більше зменшити вартість запитів у найгіршому випадку.

Діаграма

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.