AT_abc323_g [ABC323G] Inversion of Tree
Description
[problemUrl]: https://atcoder.jp/contests/abc323/tasks/abc323_g
$ (1,2,\ldots,N) $ の順列 $ P=(P_1,P_2,\ldots,P_N) $ が与えられます。
頂点に $ 1 $ から $ N $ の番号が付いた $ N $ 頂点の木のうち、以下の条件を満たすものの個数を $ 998244353 $ で割ったあまりを $ K=0,1,\ldots,N-1 $ に対して求めてください。
- 木で直接辺で結ばれた頂点の組 $ (u_i,v_i)\ (u_i\ \ P_{v_i} $ を満たすものがちょうど $ K $ 個ある。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ P_1 $ $ P_2 $ $ \ldots $ $ P_N $
Output Format
各 $ K=0,1,\ldots,N-1 $ に対して、条件を満たす木の個数を $ 998244353 $ で割ったあまりを空白区切りで出力せよ。
Explanation/Hint
### 制約
- $ 2\leq\ N\leq\ 500 $
- $ P $ は $ (1,2,\ldots,N) $ の順列
### Sample Explanation 1
$ K=0 $ のときの答えは、頂点 $ 1,2 $ と頂点 $ 1,3 $ を結ぶ木の一つです。実際、$ P_1\