#P11655. Lovely 139

Lovely 139

Lovely 139

  • 时间限制:2 秒
  • 内存限制:512 MiB

题目描述

对于一个下标从 11 开始的 01 串 SS,若区间 [l,r][l,r] 同时满足:

  • l1l\ne 1 时,Sl1SlS_{l-1}\ne S_l
  • rSr\ne |S| 时,Sr+1SrS_{r+1}\ne S_r
  • 对所有 li<rl\le i<r,均有 Si=Si+1S_i=S_{i+1}

则称 [l,r][l,r]SS 的一个极长颜色段。记 g(S)g(S)SS 的极长颜色段数。例如,g(00)=1g(00)=1g(1110)=2g(1110)=2g(001011)=4g(001011)=4

定义 f(n,m)f(n,m) 为所有恰好包含 nn0mm1 的 01 串 SSg(S)g(S) 之和。

你需要回答 TT 次询问。每次给定 n,mn,m,输出 f(n,m)f(n,m)109+710^9+7 取模的结果。

n=m=0n=m=0 时,唯一的字符串为空串,其极长颜色段数为 00

输入格式

第一行输入一个正整数 TT,表示询问数。

接下来 TT 行,每行两个非负整数 n,mn,m

输出格式

输出 TT 行,第 ii 行为第 ii 次询问的答案。

样例输入 1

3
2 2
4 6
7 8

样例输出 1

18
1218
54483

样例输入 2

3
845 826
672 826
618 925

样例输出 2

789284214
588160420
730993180

样例输入 3

1
1 46

样例输出 3

139

数据范围

对于全部数据:

  • 1T1061\le T\le 10^6
  • 0n,m2×1060\le n,m\le 2\times 10^6
  • 0n+m2×1060\le n+m\le 2\times 10^6

子任务

本题按用户明确授权不设置部分分;下列单一满分子任务内的测试点独立计分。

子任务编号 分值 特殊限制
1 100 无特殊限制

提示

对于第一组样例中的 n=m=2n=m=2,六个字符串的段数之和为 2+4+3+3+4+2=182+4+3+3+4+2=18