数字方阵

Description

Anica 做了一个很奇怪的梦:她梦见了一个无限大的平板,平板上填着无限行和无限列的整数。有趣的是,每个整数在那神奇的平板上只出现有限的次数。
机智的Anica很快便发现了这其中数字的规律,每一行第一列的数字表示当前的行号,其它非第一列的数字,为该位置左边一列的数字加上其数字的翻转数字之和。为了方便描述,我们定义A[i,j]表示平板上第i行第j列的数字:
1. A[i,1] = i,
2. A[i,j] = A[i,j-1] + Rev( A[i,j-1] ), 其中Rev(x)表示x在10进制下的翻转,例如Rev(213) = 312, Rev(406800) = 008604 = 8604 。

这里写图片描述
然而,Anica对这堆数字不太感兴趣。她看了一下平板的背面,并发现了一盏神灯,同时神灯也发现了Anica,这时一个精灵冒了出来:
精灵:“Anica,如果你能答对我Q个问题,你将获得一份神秘的礼物,否则你将无法无法醒来,哈哈哈哈~~”
精灵:“每个问题将给你两个整数A和B,请问区间[A,B]的数字总共在平板上出现了多少次?”
Anica:“我不想要你的礼物,我只想要醒过来,我还有很多事情要做呢!”

Input

第一行给出一个整数Q (1 <= Q <=10^5),表示问题的数量。
接下来Q行,每行两个整数A,B (1 <= A,B <= 10^10),表示每个询问的区间[A,B]。

Output

输出Q行,第i行一个整数,表示第i个询问的答案。

Sample Input

样例输入1:
2
1 10
5 8

样例输入2:
3
17 144
121 121
89 98

样例输入3:
1
1 1000000000

Sample Output

样例输出1:
18
8

样例输出2:
265
25
10

样例输出3:
1863025563

Data Constraint

50%的分数保证1 <= A,B <= 10^6。

50%算法

对于一个数x,x+Rev(x)是固定的
因此,对于第i行中连续的两个数a,b(i < a),有A[a,2]=b
所以可以设f[i]为i出现的次数,i=x+Rev(x),f[i]= (f

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值