贡献名单
题目背景
Height≤139。
题目描述
对于一个 01 串 S(下标从 1 开始),我们定义它的一个区间 [l,r] 是极长颜色段,当且仅当它同时满足以下条件:
- 如果 l=1,Sl−1=Sl;
- 如果 r=∣S∣,Sr+1=Sr;
- ∀i∈[l,r),Si=Si+1。
定义 g(S) 为 S 的不同极长颜色段数。比如 g(00)=1,g(1110)=2,g(001011)=4。
定义 f(n,m) 的值为所有恰好包含 n 个 0 和 m 个 1 的 01 串 S 的 g(S) 之和。
你需要回答 T 个问题,每次给出 n,m 的值,求 f(n,m) 的值对 109+7 取模后的结果。
输入格式
第一行输入一个正整数数 T,表示问题个数。
接下来 T 行,每行两个非负整数 n,m,表示问题的参数。
输出格式
输出 T 行,每行为对应问题的答案。
样例 #1
样例输入 #1
3
2 2
4 6
7 8
样例输出 #1
18
1218
54483
样例 #2
样例输入 #2
3
845 826
672 826
618 925
样例输出 #2
789284214
588160420
730993180
样例 #3
样例输入 #3
1
1 46
样例输出 #3
139
提示
样例 1 解释
对于第一组数据 n=2,m=2,一共有六个本质不同的 S,答案为 g(0011)+g(0101)+g(0110)+g(1001)+g(1010)+g(1100)=2+4+3+3+4+2=18。
数据规模与约定
本题采用捆绑测试。
- Subtask 1(15 pts):0≤n+m≤20,1≤T≤10。
- Subtask 2(25 pts):0≤n,m≤2×103。
- Subtask 3(20 pts):1≤T≤10。
- Subtask 4(40 pts):无特殊限制。
对于所有数据,保证 1≤T≤106,0≤n+m≤2×106,0≤n,m≤2×106。