CF2121E Sponsor of Your Problems
题目描述
对于两个整数 $a$ 和 $b$,我们定义 $f(a, b)$ 为 $a$ 和 $b$ 的十进制表示中,相同位置上数字相同的位数。例如,$f(12, 21) = 0$,$f(31, 37) = 1$,$f(19891, 18981) = 2$,$f(54321, 24361) = 3$。
现在给定两个十进制表示长度相同的整数 $l$ 和 $r$,考虑所有满足 $l \leq x \leq r$ 的整数 $x$。你的任务是求出 $f(l, x) + f(x, r)$ 的最小值。
输入格式
每组测试数据包含多组测试用例。第一行包含一个整数 $t$($1 \leq t \leq 10^4$),表示测试用例的数量。接下来每组测试用例包含一行,包含两个整数 $l$ 和 $r$($1 \leq l \leq r < 10^9$)。
保证 $l$ 和 $r$ 的十进制表示长度相同,且没有前导零。
输出格式
对于每组测试用例,输出在所有 $l \leq x \leq r$ 的整数 $x$ 中,$f(l, x) + f(x, r)$ 的最小值。
说明/提示
在第一个测试用例中,可以选择 $x = 1$,此时 $f(1, 1) + f(1, 1) = 1 + 1 = 2$。
在第二个测试用例中,可以选择 $x = 2$,此时 $f(2, 2) + f(2, 3) = 1 + 0 = 1$。
在第三个测试用例中,可以选择 $x = 5$,此时 $f(4, 5) + f(5, 6) = 0 + 0 = 0$。
在第四个测试用例中,可以选择 $x = 15$,此时 $f(15, 15) + f(15, 16) = 2 + 1 = 3$。
在第五个测试用例中,可以选择 $x = 18$,此时 $f(17, 18) + f(18, 19) = 1 + 1 = 2$。
在第六个测试用例中,可以选择 $x = 200$,此时 $f(199, 200) + f(200, 201) = 0 + 2 = 2$。
在第七个测试用例中,可以选择 $x = 900$,此时 $f(899, 900) + f(900, 999) = 0 + 1 = 1$。
在第八个测试用例中,可以选择 $x = 1992$,此时 $f(1990, 1992) + f(1992, 2001) = 3 + 0 = 3$。
由 ChatGPT 4.1 翻译