atcoder#ABC288F. [ABC288F] Integer Division

[ABC288F] Integer Division

题目描述

10 10 進表記で N N 桁の正整数 X X が与えられます。X X の各桁は 0 0 ではありません。
{ 1,2, , N1 } \lbrace\ 1,2,\ \ldots,\ N-1\ \rbrace の部分集合 S S に対し、f(S) f(S) を以下のように定義します。

X X 10 10 進表記したものを長さ N N の文字列とみなし、i  S i\ \in\ S のとき、またそのときに限り文字列の i i 文字目と i + 1 i\ +\ 1 文字目に区切りを入れることで S + 1 |S|\ +\ 1 個の文字列に分解する。
このようにして得られた S+1 |S|+1 個の文字列を 10 10 進表記された整数とみなし、f(S) f(S) をこれら S+1 |S|+1 個の整数の積で定める。

S S としてあり得るものは空集合を含めて 2N1 2^{N-1} 通りありますが、これら全てに対する f(S) f(S) の総和を 998244353 998244353 で割った余りを求めてください。

输入格式

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

N N X X

输出格式

答えを出力せよ。

题目大意

给定一个 nn 位数 XX,把 XX 分成若干段,得分为每一段的乘积(可以不分割,得分为 XX)。求所有分法得分之和,取模 998244353998244353

Translate by xionglangqi

3
234
418
4
5915
17800
9
998244353
258280134

提示

制約

  • 2  N  2 × 105 2\ \leq\ N\ \leq\ 2\ \times\ 10^5
  • X X 10 10 進表記で N N 桁で、各桁は 0 0 でない
  • 入力はすべて整数

Sample Explanation 1

S =  S\ =\ \emptyset とすると、f(S) = 234 f(S)\ =\ 234 です。 S = { 1 } S\ =\ \lbrace\ 1\ \rbrace とすると、f(S) = 2 × 34 = 68 f(S)\ =\ 2\ \times\ 34\ =\ 68 です。 S = { 2 } S\ =\ \lbrace\ 2\ \rbrace とすると、f(S) = 23 × 4 = 92 f(S)\ =\ 23\ \times\ 4\ =\ 92 です。 S = { 1, 2 } S\ =\ \lbrace\ 1,\ 2\ \rbrace とすると、f(S) = 2 × 3 × 4 = 24 f(S)\ =\ 2\ \times\ 3\ \times\ 4\ =\ 24 です。 234 + 68 + 92 + 24 = 418 234\ +\ 68\ +\ 92\ +\ 24\ =\ 418 であるため、418 418 を出力します。