#P4457. [BJOI2018] 治疗之雨

    ID: 3392 远端评测题 4000ms 500MiB 尝试: 0 已通过: 0 难度: 9 上传者: 标签>递推2018各省省选北京O2优化期望高斯消元

[BJOI2018] 治疗之雨

Description

题目更新:鉴于很多人反映看不懂题,但是出于尊重原题面的原则不进行大幅度更改。您可以将最小值和最大值理解为下限和上限,类似于题目背景中的血量。

你现在有 m+1m+1 个数:第一个为 pp,最小值为 00,最大值为 nn;剩下 mm个都是无穷,没有最小值或最大值。你可以进行任意多轮操作,每轮操作如下:

在不为最大值的数中等概率随机选择一个(如果没有则不操作),把它加一;

进行 kk次这个步骤:在不为最小值的数中等概率随机选择一个(如果没有则不操作),把它减一。

现在问期望进行多少轮操作以后第一个数会变为最小值 00

Input Format

输入包含多组数据。 输入第一行包含一个正整数 TT,表示数据组数。 接下来 TT行 ,每行 4个非负整数 nnppmmkk(含义见题目描述),表示一次询问。

Output Format

输出 TT行,每行一个整数,表示一次询问的答案。

如果无论进行多少轮操作,第一个数都不会变为最小值 00,那么输出-1

否则,可以证明答案一定为有理数,那么请输出答案模 109+710^9+7 的余数,即设答案为 ab\frac{a}{b}aabb为互质的正整数 ),你输出的整数为 xx,那么你需要保证 0x<109+70 \leq x < 10^9+7abx(mod109+7)a \equiv bx (\mod 10^9+7)

2
2 1 1 1
2 2 1 1
6
8

Hint

###数据范围

对于 10%10\% 的数据, n3n \leq 3m,k2m, k \leq 2

对于 20%20\% 的数据, n,m,k5n, m, k \leq 5

对于 30%30\% 的数据, n,m,k30n, m, k \leq 30

对于 40%40\% 的数据, n,m,k50n, m, k \leq 50

对于 50%50\% 的数据, n,m,k200n, m, k \leq 200

对于 70%70\% 的数据, n200n \leq 200

对于 80%80\% 的数据, n500n \leq 500

对于 100%100\% 的数据, 1T1001 \leq T \leq 1001pn15001 \leq p \leq n \leq 15000m,k1090 \leq m, k \leq 10^9

保证不存在 n=p=k=1n=p=k=1, m=0m=0 的情况(因为出题人判错了)

保证不存在答案的分母是 109+710^9+7 的倍数的情况(因为出题人没想到)