問題一覧 > 通常問題

No.1492 01文字列と転倒

レベル : / 実行時間制限 : 1ケース 4.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 137
作問者 : penguinman / テスター : kaage shotoyoo
13 ProblemId : 6188 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2021-04-25 00:56:27

問題文

0, 1 のみからなる文字列 S のうち、以下の操作を繰り返すことで空文字列にできるものを 良い文字列 と定義します。

  • Si=0, Si+1=1 (1i<|S|) を満たす i を選び、SiSi+1 を削除する。

長さ 2N良い文字列 のうち、転倒数が K であるものはいくつありますか?

K=0, 1,, N2 についてこの問題を解き、それぞれの答えを与えられる素数 M で割った余りを出力してください。

01文字列 S の転倒数とは、Si=1, Sj=0 を満たす (i, j) の組 (1i<j|S|) の個数のことを指します。

入力

N M

  • 1N100
  • 108M109+7
  • M は素数
  • 入力は全て整数

出力

N2+1 行に渡って出力してください。

i 行目には K=i1 における答えを M で割った余りを出力してください。

サンプル

サンプル1
入力
2 998244353
出力
1
1
0
0
0

長さ 2N良い文字列0011, 01012 つです。それぞれの転倒数は 0, 1 であるためこのような出力になります。

サンプル2
入力
4 1000000007
出力
1
1
2
3
3
3
1
0
0
0
0
0
0
0
0
0
0

余談ですが、長さ 2N良い文字列 の転倒数は必ず N2 以下に収まります。

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。