问题 AR: 花

内存限制:256 MB 时间限制:1 S
题面:传统 评测方式:文本比较 上传者:
提交:71 通过:35

题目描述

       现在是土拨鼠的晚餐时间啦!众所周知,土拨鼠吃喜欢的食物:花,每次晚饭他都吃一些红花和白花。因此,晚餐可以表示为几朵花的序列,一些是白色的,一些是红色的。

但是,为了让晚餐变得美味,土拨鼠有一条规则:土拨鼠只想吃数量为k朵的白花( groups of size k)。

       现在,土拨鼠想知道,如果他的晚餐最小可以吃a朵话,最多可以吃b多花,他能有多少种方法吃花。由于方式的数量可能非常大,所以结果对1000000007(10^9+7)取模后输出。

题目翻译不太好,可以看原题:https://codeforces.com/problemset/problem/474/D

输入格式

输入包含几个测试用例。

第一行包含两个整数t和k(1≤t, k≤10^5),其中t表示测试用例的数量。

接下来的t行包含两个整数ai和bi(1≤ai≤bi≤10^5)描述了第i次测试。

输出格式

输出t行数据,第i行应该包含土拨鼠在晚餐中吃ai至bi朵花的可能方法数,模数为1000000007(10^9+7)。 

输入样例: 

Input
3 2
1 3
2 3
4 4
Output
6
5
5

提示:

对于K=2和长度1,土拨鼠可以吃(R)。

对于K=2和长度2,土拨鼠可以吃(RR)和(WW)。

对于K=2和长度3,土拨鼠可以吃(RRR)、(RWW)和(WWR)。

对于K=2和长度4,土拨鼠可以吃,例如,(WWWW)或(RWWR),例如,他不能吃(WWWR)。

 

输入样例 复制

3 2
1 3
2 3
4 4

输出样例 复制

6
5
5

分类标签