CF520E Pluses everywhere
题目描述
Vasya 正在上一节无聊至极的数学课。为了娱乐,他在一张纸上写下了一行 $n$ 个数字。接着,Vasya 开始研究在这行数字之间可以插入加号 “+” 的不同方法,使得最终结果形成一个合法的算术表达式。更正式地说,这样的划分要求所有加号之间至少间隔一个数字(即没有两个加号紧挨在一起),且加号不能出现在行首或行尾。例如,对于字符串 $100500$,不插加号的 $100500$,或者 $1+00+500$、$10050+0$ 都是合法的写法,而 $100++500$、$+1+0+0+5+0+0$、$100500+$ 都是不合法的。
课程很长,Vasya 已经写出了所有可以在这行数字中恰好插入 $k$ 个加号的合法方案。此时老师发现了他的举动,并要求他在下课前计算出所有这些算术表达式的结果之和(在计算表达式的值时要忽略前导零)。由于答案可能很大,Vasya 只需给出对 $10^{9}+7$ 取模后的结果即可。请你帮助他完成这个任务!
输入格式
第一行包含两个整数 $n$ 和 $k$($0 \leq k < n \leq 10^{5}$)。
第二行包含一个只由 $n$ 个数字组成的字符串。
输出格式
输出题目要求表达式的结果之和,对 $10^{9}+7$ 取模后的值。
说明/提示
在第一个样例中,结果为 $(1+08)+(10+8)=27$。
在第二个样例中,结果为 $1+0+8=9$。
由 ChatGPT 5 翻译