#P7540. Function Counting

    ID: 7553 传统题 1000ms 256MiB 尝试: 2 已通过: 2 难度: 7 上传者: 标签>动态规划数学矩阵数论组合数学CF2200计数DP

Function Counting

题目描述

给定两个正整数 n,kn,k

定义集合:

M={n,n+1,n+2,,1,0,1,,n}M=\{-n,-n+1,-n+2,\ldots,-1,0,1,\ldots,n\}

你需要统计满足下列条件的函数 f(x)f(x) 的数量:

  1. f:MMf:M\to M

  2. 对任意 xMx\in M,都有:

fk(x)=xf_k(x)=-x

其中:

f0(x)=xf_0(x)=x

并且:

fi(x)=f(fi1(x))(i=1,2,)f_i(x)=f(f_{i-1}(x))\qquad (i=1,2,\ldots)

也就是说,fk(x)f_k(x) 表示对 xx 连续作用 kk 次函数 ff 后得到的结果。

  1. 对任意 xMx\in M,都有:
f(x)x2\left||f(x)|-|x|\right|\le 2

请输出满足条件的函数数量对 10000000071000000007 取模后的结果。

输入格式

第一行包含一个整数 TT,表示测试数据组数。

接下来 TT 行,每行包含两个整数 n,kn,k,其中:

  • nn 表示集合 MM 的上界;
  • kk 表示函数迭代次数。

输出格式

对于每组测试数据,输出一行一个整数,表示答案对 10000000071000000007 取模后的结果。

数据范围

1T1001\le T\le 100 n×k109n\times k\le 10^9

所有测试数据的 n×kn\times k 之和不超过:

4×1094\times 10^9

样例输入

7
1 1
2 1
100 1
1 2
2 2
3 2
20 4

样例输出

1
1
1
0
2
0
1048576

提示

k=1k=1 时,唯一合法函数是:

f(x)=xf(x)=-x

n=k=2n=k=2 时,存在两个合法函数:

f:(2,1,0,1,2)(1,2,0,2,1)f:(-2,-1,0,1,2)\to(1,-2,0,2,-1)

或:

f:(2,1,0,1,2)(1,2,0,2,1)f:(-2,-1,0,1,2)\to(-1,2,0,-2,1)