아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Случайное дерево

시간 제한2초메모리 제한1024 MB

요약
무작위로 만들어지는 트리에 정점이 하나씩 추가될 때마다, 아직 추가된 정점들의 모든 부분집합에 대해 그 부분집합을 포함하는 최소 연결 부분트리의 정점 수 합을 998244353으로 나눈 나머지를 구합니다.
난이도

보통10점 중 7점

유형
트리, 조합론, 동적 계획법
정답자
아직 제출이 없습니다

문제

Рассмотрим следующий процесс построения дерева TT.

Изначально дерево состоит из одной вершины, которая имеет номер 11.

Дальше в дерево добавляются вершины с номерами 2…n2 \ldots n.

На ii-м шаге в дерево добавляется вершина с номером i+1i+1, также в дерево добавляется ребро из нее в некоторую уже добавленную вершину pp (1≤p≤i1 \leq p \leq i), которая выбирается среди них случайно равновероятно.

Пусть VV --- множество уже добавленных в TT вершин.

Тогда пусть f(A)f(A) --- количество вершин TT, что они лежат или в AA, или на пути между какими-либо двумя вершинами из AA (возможно, и там, и там).

Ваша задача после добавления каждой вершины вывести сумму f(A)f(A) по всем множествам AA, которые являются подмножествами множества уже добавленных в TT вершин (∑f(A)\sum{f(A)} по всем A⊆VA \subseteq V). Так как ответы могут быть очень большим, выводите лишь остатки от деления ответа на 998244353998244353.

입력

Первая строка входного файла содержит одно число nn --- количество вершин в дереве после последнего шага (2≤n≤200000)(2 \leq n \leq 200000).

В следующей строке расположено n−1n-1 целое число p_1,p_2,…,p_np\_1, p\_2, \ldots, p\_n (1≤p_i≤i1 \leq p\_i \leq i), обозначающих добавления в граф вершины i+1i+1 и ребра между p_ip\_i и i+1i+1 соответственно. Гарантируется, что p_ip\_i выбрано случайно равновероятно среди чисел от 11 до ii.

출력

Выведите n−1n-1 целое число, остатки от деления (∑f(A)\sum{f(A)} по всем A⊆VA \subseteq V) на 998244353998244353 после добавления каждой вершины.

힌트

Итоговые деревья из примеров:

예제2

  1. 예제 1

    입력
    5
    1 1 1 1
    
    예상 출력
    4 13 36 91
    
  2. 예제 2

    입력
    7
    1 2 3 4 5 6
    
    예상 출력
    4 13 38 103 264 649