题库/YBT0262

#YBT0262. 序列

    传统题 难度: 提高 标签>一本通自描述序列加权段前缀边界二分模运算
时间限制1000 ms
内存限制256 MiB
通过率100%1 / 1 次提交
题目描述 查看题解 开始编程Alt+E

YBT0262 · 序列

退出在线编程模式
提高 读懂题意,让每一次思考成为成长。
时间限制1000 ms
内存限制256 MiB
通过率100%1 / 1 次提交

题目描述

我们有一个序列,现在它里面有三个数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。

评测数据说明

本题使用按题意独立构造、以独立程序核对的训练数据及公开样例,共10个测试点,非原站或官方原始数据。总分100分。

题目信息

#1685
100%

1 次通过 · 1 次提交

练习难度 提高
时间限制
1000ms
内存限制
256MiB
上传者