A93777.拼花带

普及+/提高

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

有一条长度为 nn 的长带,需要用两种花带片拼接起来:

红色花带片长度为 11

白色花带片长度为 kk

把长度恰好拼到 nn 的不同拼法数量记为 f(n)f(n)。两种拼法不同,当且仅当在某个位置,使用的花带片颜色(或长度)不同。

现在给出若干询问区间 [a,b][a,b],对于每个区间,输出:

n=abf(n)(mod109+7)\sum_{n=a}^b f(n) \pmod {10^9 + 7}

输入格式

第一行包含两个整数 t,kt, k —— 询问个数与白色花带片的长度。

接下来 tt 行,每行两个整数 ai,bia_i, b_i,表示一个区间 [ai,bi][a_i,b_i]

输出格式

对于每个询问,输出一行一个整数,表示 n=aibif(n)(mod109+7)\sum_{n=a_i}^{b_i} f(n)\pmod{10^9+7}

输入输出样例

  • 输入#1

    3 3
    1 3
    2 3
    4 6
    

    输出#1

    4
    3
    13
    

说明/提示

1t1051\le t\le 10^5

1k1051\le k\le 10^5

1aibi1051\le a_i\le b_i\le 10^5

对于样例:

k=3k=3 时:

f(0)=1f(0)=1(空拼法),f(1)=1f(1)=1f(2)=1f(2)=1

f(3)=f(2)+f(0)=1+1=2f(3)=f(2)+f(0)=1+1=2(分别为 1+1+1 和 3);

f(4)=f(3)+f(1)=2+1=3f(4)=f(3)+f(1)=2+1=3f(5)=f(4)+f(2)=3+1=4f(5)=f(4)+f(2)=3+1=4f(6)=f(5)+f(3)=4+2=6f(6)=f(5)+f(3)=4+2=6

于是:

n=13f(n)=1+1+2=4\sum_{n=1}^{3} f(n)=1+1+2=4

n=23f(n)=1+2=3\sum_{n=2}^{3} f(n)=1+2=3

n=46f(n)=3+4+6=13\sum_{n=4}^{6} f(n)=3+4+6=13

首页