题目 5016

序列

查看题解 ↗GitHub ↗如何评测
题号
5016
时间限制
1000 ms
内存限制
256 MB
来源
信息学奥赛一本通 · 高手训练篇·一、基础算法(高手训练)

【题目描述】

我们有一个序列,现在它里面有三个数1,2,21,2,2。我们从第三个数开始考虑: 1、第三个数是22,所以我们在序列后面写22个33,变成1,2,2,3,31,2,2,3,3。 2、第四个数是33,所以我们在序列后面写33个44,变成1,2,2,3,3,4,4,41,2,2,3,3,4,4,4。 那么你可以看到,这个序列应该是1,2,2,3,3,4,4,4,5,5,5,6,6,6,6,…1,2,2,3,3,4,4,4,5,5,5,6,6,6,6,…。 如果我们设一个数N最后出现的位置为last(N)last(N),那么现在我希望知道last(N)last(N)等于多少。

【输入】

第一行一个整数TT,代表数据组数。 接下来TT行每行一个整数NN。

【输出】

TT行,每行一个整数,代表last(last(N)) mod (109+7)last(last(N))\bmod (10^9+7)的值。

【输入样例】

文本
3
3
10
100000

【输出样例】

文本
11
217
507231491

【提示】

【数据规模】 对于30%的数据,1≤N≤1031≤N≤10^3。 对于60%的数据,1≤N≤1061≤N≤10^6。 对于100%的数据,1≤N≤109,1≤T≤2×1031≤N≤10^9,1≤T≤2×10^3。

数据下载

题目 5016 的公开数据

正在读取文件列表…

常用命令

题目 5016 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。