QOJ.ac

QOJ

実行時間制限: 1.0 s メモリ制限: 256 MB 満点: 100 ハック可能 ✓

#15424. Sköldpaddssoppa

統計

Beskrivning

Ett företag består av $n$ medlemmar med anställnings-ID $1, 2, \dots, n$. Medlem $1$ är chefen, och varje annan medlem $i$ ($2 \le i \le n$) har en närmaste chef $f_i$ ($1 \le f_i < i$). Företagsstrukturen bildar ett rotat träd med medlem $1$ som rot.

I detta företag känner medlem $a$ medlem $b$ om och endast om minst ett av följande villkor är uppfyllt:

  • $a = b$.
  • $b$ är en förfader till $a$. Med andra ord finns det en följd $u_1, u_2, \dots, u_k$ ($2 \le k$) sådan att $u_1 = a$, $u_k = b$ och $u_i = f_{u_{i-1}}$ för alla $2 \le i \le k$.
  • $b$ är ett direkt barn till $a$ ($b$ är en direkt underordnad till $a$). Med andra ord, $f_b = a$.

Observera att bekantskapsrelationen inte nödvändigtvis är symmetrisk; att $a$ känner $b$ innebär inte att $b$ känner $a$.

Nu spelar medlemmarna ett spel. I varje runda agerar en specifik medlem $m$ som gissare, och en annan medlem $p$ är målet. Det garanteras att $p$ är en medlem som $m$ inte känner.

För att identifiera $p$ ställer $m$ en följd av frågor. För varje fråga väljer $m$ ett ID $x$ och frågar: ”Känner $p$ medlem $x$?” Medlem $p$ svarar alltid sanningsenligt. Dessutom, om $x = p$, kommer $p$ specifikt att avslöja att hen är medlem $x$, varpå spelet avslutas.

Varje fråga medför en resekostnad baserad på företagsträdet. Om den $i$-te frågan gäller medlem $x_i$ är kostnaden för den frågan $dis(x_{i-1}, x_i)$, där $dis(a, b)$ är antalet kanter på den unika vägen mellan $a$ och $b$ i trädet. För den första frågan ($i = 1$) är kostnaden $dis(m, x_1)$.

Medlem $m$ är extremt smart och använder en optimal strategi för att minimera den totala kostnaden som krävs för att garantera att spelet slutförs i värsta fall (worst-case scenario). Din uppgift är att beräkna denna minimala värstafallskostnad för varje möjlig gissare $m \in \{1, 2, \dots, n\}$.

Om en medlem $m$ redan känner alla i företaget är svaret för detta $m$ lika med $0$.

Indata

Den första raden i indatan innehåller ett heltal $n$ ($1 \le n \le 10^5$), som representerar det totala antalet medlemmar i företaget.

Den andra raden innehåller $n - 1$ heltal, som representerar $f_2, f_3, \dots, f_n$. Det gäller att $1 \le f_i < i$.

Utdata

Skriv ut en enda rad som innehåller $n$ heltal, vilka representerar svaren för fallen där $m = 1, m = 2, \dots, m = n$. Heltalen ska separeras med mellanslag.

Exempel

Exempelindata 1

3
1 1

Exempelutdata 1

0 2 2

Exempelindata 2

5
1 1 3 2

Exempelutdata 2

4 3 3 4 4

Exempelindata 3

6
1 1 2 2 3

Exempelutdata 3

4 3 5 4 4 6

Anmärkning

För att förklara fallet $m = 4$ i exempel 3: Först, som visas i diagrammet, känner medlem $m$ inte medlemmarna $\{3, 5, 6\}$. En möjlig optimal strategi är att först fråga om medlem $2$ är känd av $p$, vilket kostar $1$. Om så är fallet, indikerar det att $p = 5$, och nästa steg är att fråga om medlem $5$ för att avsluta spelet, med en totalkostnad på $2$. Annars fortsätter man med att fråga om medlem $3$ är känd av $p$, vilket kostar $2$. Om $p = 3$ avslutas spelet med en totalkostnad på $3$. Annars indikerar det att $p = 6$, och nästa steg kostar $1$ för att fråga om medlem $6$, vilket avslutar spelet med en totalkostnad på $4$. Därför kräver denna strategi en kostnad i värsta fall på $4$. Det kan bevisas att ingen annan strategi kan minska frågekostnaden i värsta fall ytterligare.

Diagram

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.