QOJ.ac

QOJ

Time Limit: 1.0 s Memory Limit: 256 MB Total points: 100 Hackable ✓

#15424. Тасбақа сорпасы

Statistics

Есептің шарты

Компания қызметкер ID-лері $1, 2, \dots, n$ болатын $n$ мүшеден тұрады. $1$-мүше — бастық, ал қалған әрбір $i$-мүшенің ($2 \le i \le n$) тікелей жетекшісі $f_i$ ($1 \le f_i < i$) бар. Компания құрылымы түбірінде $1$-мүше орналасқан түбірлі ағашты құрайды.

Бұл компанияда $a$ мүшесі $b$ мүшесін келесі шарттардың кем дегенде біреуі орындалса және тек сонда ғана таниды:

  • $a = b$.
  • $b$ — $a$ мүшесінің арғы тегі (ата-бабасы). Басқаша айтқанда, $u_1 = a$, $u_k = b$ және барлық $2 \le i \le k$ үшін $u_i = f_{u_{i-1}}$ болатындай $u_1, u_2, \dots, u_k$ ($2 \le k$) тізбегі бар.
  • $b$ — $a$ мүшесінің тікелей баласы ($b$ — $a$ мүшесінің тікелей бағыныштысы). Басқаша айтқанда, $f_b = a$.

Таныстық қатынасы міндетті түрде симметриялы емес екенін ескеріңіз: $a$-ның $b$-ны тануы $b$-ның $a$-ны танитынын білдірмейді.

Қазір мүшелер ойын ойнап жатыр. Әр раундта белгілі бір $m$ мүшесі болжаушы рөлін атқарады, ал басқа бір $p$ мүшесі нысана болады. $p$ мүшесі $m$ танымайтын мүше екеніне кепілдік беріледі.

$p$-ны анықтау үшін $m$ бірқатар сұрақтар қояды. Әр сұрақта $m$ бір $x$ ID-ін таңдап: «$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$) берілген.

Екінші жолда $f_2, f_3, \dots, f_n$ мәндерін білдіретін $n - 1$ бүтін сан берілген. $1 \le f_i < i$ шарты орындалады.

Шығыс деректер

$m = 1, m = 2, \dots, m = n$ жағдайлары үшін жауаптарды білдіретін, бос орынмен бөлінген $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

Ескертпе

3-мысалдағы $m = 4$ жағдайын түсіндіру үшін: Біріншіден, диаграммада көрсетілгендей, $m$ мүшесі $\{3, 5, 6\}$ мүшелерін танымайды. Мүмкін болатын оңтайлы стратегиялардың бірі — алдымен $p$-ның $2$-мүшені танитынын-танымайтынын $1$ шығынмен сұрау. Егер таныса, бұл $p = 5$ екенін білдіреді, ал келесі қадам — ойынды жалпы құны $2$-мен аяқтау үшін $5$-мүше туралы сұрау. Әйтпесе, $p$-ның $3$-мүшені танитынын-танымайтынын $2$ шығынмен сұрауды жалғастырамыз. Егер $p = 3$ болса, ойын жалпы құны $3$-пен аяқталады. Әйтпесе, бұл $p = 6$ екенін білдіреді, ал келесі қадамда $6$-мүше туралы сұрауға $1$ шығын кетеді де, ойын жалпы құны $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.