CF1073E Segment Sum

题目描述

给定两个整数 $l$ 和 $r$($l \le r$)。你的任务是计算从 $l$ 到 $r$(包括 $l$ 和 $r$)之间所有数字中,每个数字最多包含 $k$ 种不同数字的数的和,并输出该和对 $998244353$ 取模的结果。 例如,如果 $k = 1$,你需要计算所有只由一种数字组成的数。在 $l = 10, r = 50$ 时,答案为 $11 + 22 + 33 + 44 = 110$。

输入格式

输入仅一行,包含三个整数 $l$、$r$ 和 $k$($1 \le l \le r < 10^{18}, 1 \le k \le 10$)——区间的左右端点以及最多允许的不同数字个数。

输出格式

输出一个整数,表示从 $l$ 到 $r$ 中每个数字最多包含 $k$ 种不同数字的数的和,对 $998244353$ 取模。

说明/提示

对于第一个样例,答案就是从 $l$ 到 $r$ 的所有数的和,即 $\frac{50 \cdot 51}{2} - \frac{9 \cdot 10}{2} = 1230$。该样例在题目描述中也有解释,但针对 $k = 1$。 对于第二个样例,答案就是从 $l$ 到 $r$ 的所有数的和,即 $\frac{2345 \cdot 2346}{2} = 2750685$。 对于第三个样例,答案为 $101 + 110 + 111 + 112 + 113 + 114 + 115 + 116 + 117 + 118 + 119 + 121 + 122 + 131 + 133 + 141 + 144 + 151 = 2189$。 由 ChatGPT 4.1 翻译