loj#P6372. 「VK Cup 2018 Round 2」最小子集差

「VK Cup 2018 Round 2」最小子集差

题目描述

我们称一个正整数 xx 是「kk–美妙」的,当且仅当存在一种方式将 xx 的十进制表示中所有数码所组成的可重集拆分成两个子集,使得二者各自的元素之和的差值不大于 kkxx 十进制表示的每一个数码应出现在恰好一个子集中。

请解决 nn 个询问,其中每一个形如 (l,r,k)(l, r, k),询问 [l,r][l, r] 范围内「kk–美妙」的整数个数。

输入格式

输入的第一行包含一个正整数 nn —— 询问的数目。

接下来 nn 行每行包含三个空格分隔的整数 l,r,kl, r, k —— 询问 [l,r][l, r] 范围内「kk–美妙」的整数个数。

输出格式

对于每个询问输出一行 —— 包含一个整数表示其答案。

10
1 100 0
1 100 1
1 100 2
1 100 3
1 100 4
1 100 5
1 100 6
1 100 7
1 100 8
1 100 9
9
28
44
58
70
80
88
94
98
100
10
1 1000 0
1 1000 1
1 1000 2
1 1000 3
1 1000 4
1 1000 5
1 1000 6
1 1000 7
1 1000 8
1 1000 9
135
380
573
721
830
906
955
983
996
1000

数据范围与提示

1n5×1041 \leq n \leq 5 \times 10^4
1lr10181 \leq l \leq r \leq 10^{18}0k90 \leq k \leq 9