AT_abc313_e [ABC313E] Duplicate

题目描述

给定一个只包含数字 $1$ 到 $9$ 的字符串 $S$,定义 $f(S)$ 为通过以下步骤得到的字符串 $T$($S_i$ 表示 $S$ 的第 $i$ 个字符): - 有一个字符串 $T$。初始时,$T$ 是空字符串。 - 对于 $i=1,2,\dots,|S|-1$,依次进行如下操作: - 将 $S_{i+1}$ 作为整数,记为 $n$。在 $T$ 的末尾添加 $n$ 个 $S_i$。 例如,当 $S=313$ 时,$f(S)=3111$,操作过程如下: - 初始时 $T$ 为空字符串。 - $i=1$ 时,$n=1$,在 $T$ 末尾添加 $1$ 个 `3`,$T$ 变为 `3`。 - $i=2$ 时,$n=3$,在 $T$ 末尾添加 $3$ 个 `1`,$T$ 变为 `3111`。 - 操作结束,得到 $T=3111$。 现在给定一个长度为 $N$ 的只包含 $1$ 到 $9$ 的字符串 $S$。你需要不断执行“将 $S$ 替换为 $f(S)$”的操作,直到 $S$ 的长度变为 $1$ 为止。 请输出在操作结束前所需操作的次数对 $998244353$ 取模的结果。如果操作会无限进行下去,请输出 $-1$。

输入格式

输入通过标准输入给出,格式如下: > $N$ $S$

输出格式

输出操作结束前所需操作的次数对 $998244353$ 取模的结果。如果操作会无限进行下去,输出 $-1$。

说明/提示

### 限制条件 - $2 \leq N \leq 10^6$ - $S$ 是由 $1$ 到 $9$ 组成的长度为 $N$ 的字符串 ### 样例解释 1 当 $S=313$ 时,经过 $4$ 次操作后,$S$ 的长度变为 $1$。 - $f(S)=3111$,将 $S$ 替换为 `3111`。 - $f(S)=311$,将 $S$ 替换为 `311`。 - $f(S)=31$,将 $S$ 替换为 `31`。 - $f(S)=3$,将 $S$ 替换为 `3`。 - 此时 $S$ 的长度为 $1$,操作结束。 ### 样例解释 2 当 $S=123456789$ 时,操作会无限进行下去。这种情况下应输出 $-1$。 由 ChatGPT 4.1 翻译