#P4152. [WC2014] 时空穿梭

    ID: 3089 远端评测题 1000ms 500MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>数学2014WC/CTSC/集训队莫比乌斯反演组合数学

[WC2014] 时空穿梭

题目描述

小X驾驶着他的飞船准备穿梭过一个 nn 维空间,这个空间里每个点的坐标可以用 nn 个实数来表示,即 (x1,x2,...,xn)(x_1, x_2, ... , x_n)

为了穿过这个空间,小 X 需要在这个空间中选取 cc (c2)(c \geq 2) 个点作为飞船停留的地方,而这些点需要满足以下三个条件:

11. 每个点的每一维坐标均为正整数,且第 ii 维坐标不超过 mim_i

22. 第 i+1i + 1 (1i<c)(1 \leq i < c) 个点的第 jj (1jn)(1 \leq j \leq n) 维坐标必须严格大于第 ii 个点的第 jj 维坐标。

33. 存在一条直线经过所选的所有点。在这个 nn 维空间里,一条直线可以用 2n2n个实数 p1p_1, p2p_2, … , pnp_n, v1v_1, v2v_2, … , vnv_n 表示。 直线经过点 (x1,x2,...,xn)(x_1, x_2, ... , x_n) ,当且仅当存在实数 tt,使得对 i=1i = 1nn 均满足 xix_i = pi+tvip_i + tv_i

小 X 还没有确定他的最终方案,请你帮他计算一下一共有多少种不同的方案满足他的要求。由于答案可能会很大,你只需要输出答案 mod 1000710 007 后的值。

输入格式

输入文件 space.in 的第一行包含一个正整数 TT ,表示有 TT 组数据需要求解。

每组数据包含两行,第一行包含两个正整数 nn, cc (c2)(c \geq 2) ,分别表示空间的维数和需要选择的暂停点个数。

第二行包含 nn 个正整数,依次表示 m1m_1, m2m_2, … , mnm_n

输出格式

输出文件 space.out 包含 TT 行,每行包含一个非负整数,依次对应每组数据

的答案。

3
2 3
3 4
3 3
3 4 4
4 4
5 9 7 8
2
4
846
1
11 20
97665 99289 91440 92389 93960 94623 96582 93975 98359 93492 90331

3278

提示

【样例11说明】

样例数据第一组共有两种可行方案:一种是选择 (1,1)(1,1) , (2,2)(2,2) , (3,3)(3,3) ,另一种是选择 (1,2)(1,2) , (2,3)(2,3) , (3,4)(3,4)

【数据规模】

QQ20180128172205.png