#P9930. [NFLSPC #6] 1064 病毒

[NFLSPC #6] 1064 病毒

背景

你的电脑中了 1064 病毒,现在电脑里储存的所有数字都开始坍缩了!

为了更彻底地毁灭你的电脑,对于十进制下的 nn 位数,邪恶的 1064 病毒会将它按照某种规则迭代至少 n+1n + 1 次,以确保你无法还原。

面对 1064 病毒,你手足无措。但是作为 OIer 的你想知道道道道道道道道道道道到到到到到到到到

题目描述

定义数字串为只含有数码 0∼90\sim 9 的串,奇数数码为 1,3,5,7,91, 3, 5, 7, 9,偶数数码为 0,2,4,6,80, 2, 4, 6, 8。

对数字串 xx,设其中奇数数码,偶数数码和总数码个数分别为 a,b,ca, b, c,则 a+b=c=∣x∣a + b = c = |x|。定义 g(x)g(x) 为将 a,b,ca, b, c 依次写下得到的数字串,不忽略前导零。例如 g(0)=011g(\texttt{0}) = \texttt {011},g(1064)=134g(\texttt{1064}) = \texttt{134},g(822)=033g(\texttt {822}) = \texttt {033},g(1092515503)=7310g(\texttt{1092515503}) = \texttt{7310}。

设 fk(x)f_k(x) 表示将 数字 xx 忽略前导零 写成数字串 x′x' 后,将 g(x′)g(x') 迭代 kk 次得到的数字串对应的数字,即设 x∗=g(g(⋯g(x′)))x ^ * = g(g(\cdots g(x')))(共有 kk 个 gg),则 fk(x)f_k(x) 为将 x∗x ^ * 写成数字后的结果。

给定 n,kn, k(保证 n<kn < k),求 ∑i=010n−1fk(i)\sum_{i = 0} ^ {10 ^ n - 1} f_k(i)。

多组数据。

输入格式

第一行一个整数 TT。

接下来 TT 行,每行两个整数 n,kn, k 表示一组数据。

输出格式

对每组数据,输出一行一个整数表示答案。

1
0 1

11

提示

对于所有数据,1≤T≤601\leq T\leq 60,0≤n<k≤1050\leq n < k \leq 10 ^ 5,∑k≤105\sum k\leq 10 ^ 5。

  • 测试点 1(3030 分):n≤5n\leq 5,k≤15k\leq 15。
  • 测试点 2(7070 分):无特殊限制。

Source:NFLSPC #6 F by Alex_Wei