3797: 加法方案(第四轮03)
题目描述
白浅妹妹正在学习加法,但是老师只给了她一个数字 n,她没法对一个数字做加法运算,于 是她从 n 中取出若干个数位(至少 1 个), 然后按照原来的相对顺序拼接组成新一个数字 x,剩余的数位也按原来的相对顺序组成另一个数字 y,将两个数字 x, y 求和。
例如 12345 可以拿出 24,剩下135,求和 24 + 135 = 159。 求所有拆数字的方案的和对 998244353 取模后的结果。
允许把 n 中所有的数位全部取出,此时 n 变成 0。
记 n ∈ [10^m−1, 10^m) 。n 从高到低位记为 am−1 到 a0,即 n = am−1am−2 ⋯ a0 。记 S 是 {0,1,2, ⋯ , m − 1}的子集。每个 S 对应特定的 a 的子序列,即 S = {0,2,3},则 x = a3 a2 a0 。 两个方案不同等价于 S 不同。
大样例:sample.zip
输入
输入包含一行。
第一行输入一个正整数 n。
输出
输出一个数, 即所有拆数字的方案的和对 998244353 取模后的结果。
样例输入 复制
123
样例输出 复制
231
提示
【样例 1 输入】
123
【样例 1 输出】
231
【说明】
取 1 个数位: 12 + 3 = 15, 23 + 1 = 24, 13 + 2 = 15
取 2 个数位: 3 + 12 = 15, 1 + 23 = 24, 2 + 13 = 15
取 3 个数位: 0 + 123 = 123 全部求和得到 231
【样例 2 输入】
221
【样例 2 输出】
359
【备注】
- 对于测试点1: 1 ≤ n < 10^100 。
- 对于测试点2 ~ 5: 1 ≤ n < 10^1000 。
- 对于测试点6 ~ 10: 1 ≤ n < 10^100000 。