atcoder#AGC046C. [AGC046C] Shift

[AGC046C] Shift

题目描述

01 のみからなる文字列 S S が与えられます。S S に以下の操作を 0 0 回以上 K K 回以下繰り返してできる可能性のある文字列の個数を 998244353 998244353 で割った余りを求めてください。

  • 整数 1 i < j S 1\leq\ i\ <\ j\leq\ |S| の組であって、S S i i 文字目が 0 であり j j 文字目が 1 であるものを選ぶ。S S j j 文字目を取り除き、i i 文字目の直前の位置に挿入する。

输入格式

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

S S K K

输出格式

S S に操作を 0 0 回以上 K K 回以下繰り返してできる可能性のある文字列の個数を 998244353 998244353 で割った余りを出力せよ。

题目大意

给定一个只由 01 组成的序列 SS 。求对 SS 进行以下的操作 [0,k][0,k] 次后可以得到的字符串种类个数模 998244353998244353 后的值。

  • 选取一对整数 i,j (1i<jS)i,j \space (1 \le i < j \le |S|) ,使得 SiS_i0SjS_j1。将 SjS_j 删去,并将这个数插在 SiS_i 之前。

输入格式

一行,为字符串 SS 和常数 kk

输出格式

一行一个整数,代表对 SS 进行操作 [0,k][0,k] 次后可以得到的字符串种类个数模 998244353998244353 后的值。

数据范围与约定

  • 1S300 1 \le |S| \le 300
  • 0k109 0 \le k \le 10^9
  • SS 只包含 01

样例解释 1

可能形成 0101, 0110, 1001, 1010 四种字符串。

0101 1
4
01100110 2
14
1101010010101101110111100011011111011000111101110101010010101010101 20
113434815

提示

制約

  • 1  S  300 1\ \leq\ |S|\ \leq\ 300
  • 0  K  109 0\ \leq\ K\ \leq\ 10^9
  • S S 0, 1 のみからなる

Sample Explanation 1

0101, 0110, 1001, 10104 4 通りの文字列ができる可能性があります。