QOJ.ac

QOJ

Süre Sınırı: 2.0 s Bellek Sınırı: 2048 MB

#22841. 最大直径

İstatistikler

$X = (x_1, x_2, \ldots, x_{n-1})$ を、各要素が $1$ 以上 $n$ 以下の整数である長さ $n - 1$ の任意の整数列とします。次の条件を満たす木すべてを考えます。このような木は常に少なくとも一つ存在します。これらの木の中での直径の最大値を $f(X)$ と定義します。

  • 木は $n$ 個の頂点からなり、頂点には $1$ から $n$ までの番号が付けられている。辺には $1$ から $n - 1$ までの番号が付けられている。各 $i$($1 \le i \le n - 1$)について、辺 $i$ の端点のいずれか一方は $x_i$ である。

ここで、木の直径とは、二頂点間のパスに含まれる辺の本数の最大値のことです。

二つの整数列 $A = (a_1, a_2, \ldots, a_{n-1})$ と $B = (b_1, b_2, \ldots, b_{n-1})$ が与えられます。$A$ の各要素は $1$ 以上 $n$ 以下です。$B$ の各要素は正の整数です。組 $(a_1, b_1), (a_2, b_2), \ldots, (a_{n-1}, b_{n-1})$ はすべて相異なると仮定して構いません。

各 $d = 2, 3, \ldots, n - 1$ について、次の問題を解いてください:

各要素が $1$ 以上 $n$ 以下であり、かつ $f(X) = d$ を満たす整数列 $X = (x_1, x_2, \ldots, x_{n-1})$ を一つ選ぶ。このような列は常に存在する。各 $i$($1 \le i \le n - 1$)について、$x_i \ne a_i$ であるとき、かつそのときに限り、コスト $2^{b_i}$ を支払う。支払う総コストの最小値を求めよ。

答えは非常に大きくなる可能性があるため、$998\,244\,353$ で割った余りを出力してください。

入力

入力は以下の形式の単一のテストケースからなります。

$$ \begin{aligned} &n \\ &a_1 \ a_2 \ \cdots \ a_{n-1} \\ &b_1 \ b_2 \ \cdots \ b_{n-1} \end{aligned} $$

1 行目には整数 $n$($3 \le n \le 2 \times 10^5$)が与えられます。2 行目には数列 $A$ の $n - 1$ 個の整数($1 \le a_i \le n$)が与えられます。3 行目には数列 $B$ の $n - 1$ 個の整数($1 \le b_i \le 10^9$)が与えられます。$i \ne j$ ならば $(a_i, b_i) \ne (a_j, b_j)$ であることが保証されます。

出力

$n - 2$ 行出力してください。$k$ 行目には $d = k + 1$ に対する答え、すなわち $f(X) = k + 1$ を満たす列 $X$ の総コストの最小値を $998\,244\,353$ で割った余りを出力してください。

入出力例

入力 1

5
2 4 3 4
1 2 4 8

出力 1

18
2
0

入力 2

10
6 2 1 6 10 4 6 10 4
1 1 7 8 1 5 5 5 10

出力 2

454
196
68
36
4
2
0
2

入力 3

9
1 1 1 1 1 1 1 1
24 27 30 33 36 39 42 45

出力 3

0
16777216
150994944
226492415
830472183
671088562
394263947

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#2902EditorialOpenNew Editorial for Problem #22841louyuxuanView

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.