A93777.拼花带
普及+/提高
官方
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
有一条长度为 n 的长带,需要用两种花带片拼接起来:
红色花带片长度为 1;
白色花带片长度为 k。
把长度恰好拼到 n 的不同拼法数量记为 f(n)。两种拼法不同,当且仅当在某个位置,使用的花带片颜色(或长度)不同。
现在给出若干询问区间 [a,b],对于每个区间,输出:
n=a∑bf(n)(mod109+7)
输入格式
第一行包含两个整数 t,k —— 询问个数与白色花带片的长度。
接下来 t 行,每行两个整数 ai,bi,表示一个区间 [ai,bi]。
输出格式
对于每个询问,输出一行一个整数,表示 ∑n=aibif(n)(mod109+7)。
输入输出样例
输入#1
3 3 1 3 2 3 4 6
输出#1
4 3 13
说明/提示
1≤t≤105
1≤k≤105
1≤ai≤bi≤105
对于样例:
当 k=3 时:
f(0)=1(空拼法),f(1)=1,f(2)=1;
f(3)=f(2)+f(0)=1+1=2(分别为 1+1+1 和 3);
f(4)=f(3)+f(1)=2+1=3;f(5)=f(4)+f(2)=3+1=4;f(6)=f(5)+f(3)=4+2=6。
于是:
∑n=13f(n)=1+1+2=4;
∑n=23f(n)=1+2=3;
∑n=46f(n)=3+4+6=13。