atcoder#ABC248F. [ABC248F] Keep Connect

[ABC248F] Keep Connect

题目描述

2 2 以上の整数 N N および素数 P P が与えられます。
下図のような 2N 2N 頂点 (3N2) (3N-2) 辺のグラフ G G を考えます。

より具体的には、頂点を順に頂点 1 1 , 頂点 2 2 , \ldots , 頂点 2N 2N 、 辺を順に辺 1 1 , 辺 2 2 , \ldots , 辺 (3N2) (3N-2) とすると、各辺は次のように頂点を結んでいます。

  • 1 i N1 1\leq\ i\leq\ N-1 について、辺 i i は頂点 i i と頂点 i+1 i+1 を結んでいる。
  • 1 i N1 1\leq\ i\leq\ N-1 について、辺 (N1+i) (N-1+i) は頂点 N+i N+i と頂点 N+i+1 N+i+1 を結んでいる。
  • 1 i N 1\leq\ i\leq\ N について、辺 (2N2+i) (2N-2+i) は頂点 i i と頂点 N+i N+i を結んでいる。

i=1,2, ,N1 i=1,2,\ldots\ ,N-1 について、次の問題を解いてください。

G G 3N2 3N-2 本の辺からちょうど i i 本の辺を取り除く方法であって、辺を取り除いた後のグラフも連結であるようなものの個数を P P で割ったあまりを求めよ。

输入格式

入力は以下の形式で標準入力から与えられる。

N N P P

输出格式

N1 N-1 個の整数を空白区切りで出力せよ。 ただし、k k 番目の整数は i=k i=k に対する答えである。

题目大意

给定 n,p n, p ,存在如图的 2×n 2 \times n 的网格图,显然初始共有 2n 2n 个顶点和 3n2 3n - 2 条边,分别求删除 i[1,n1] i \in [1, n - 1] 条边后仍使图连通的删边方案数,对 p p 取模。

3 998244353
7 15
16 999999937
46 1016 14288 143044 1079816 6349672 29622112 110569766 330377828 784245480 453609503 38603306 44981526 314279703 408855776

提示

制約

  • 2  N  3000 2\ \leq\ N\ \leq\ 3000
  • 9× 108  P  109 9\times\ 10^8\ \leq\ P\ \leq\ 10^9
  • N N は整数である。
  • P P は素数である。

Sample Explanation 1

N=3 N=3 の場合について、取り除いた後のグラフも連結となるように、ちょうど 1 1 本の辺を取り除く方法は次の 7 7 通りです。 ![](https://img.atcoder.jp/abc248/57f65600b77ee654900cff4ea6e40872.png) 取り除いた後のグラフも連結となるように、ちょうど 2 2 本の辺を取り除く方法は次の 15 15 通りです。 ![](https://img.atcoder.jp/abc248/3a7d6523a1252886e9a33204a32e45f5.png) よって、これらを P=998244353 P=998244353 で割ったあまりである 7 7 , 15 15 をこの順に出力します。

Sample Explanation 2

P P で割ったあまりを出力することに注意してください。