#P12785. 光线折射
光线折射
光线折射
Problem Description
Arcaea的世界是一个二维平面,平面内的每个格点 { } 都有一片大小和厚度可忽略不计的“残片”(玻璃),每片玻璃完全一致且都与直线 垂直。 同时,每片玻璃还有相同的两个系数:折射系数 和反射系数 。 当一束强度为 的光束沿 轴正方向射向任意一片玻璃时,该玻璃将沿 轴正方向射出强度为 的折射光束,并沿 轴正方向射出强度为 的反射光束; 对称地,当一束强度为 的光束沿 轴正方向射向任意一片玻璃时,该玻璃将沿 轴正方向射出强度为 的折射光束,并沿 轴正方向射出强度为 的反射光束。 现Hikari在位置 向 轴的正方向发射了强度为1的光束("Fracture Ray"),并想要使其打中在位置 的Tairitsu;她想知道最终照射在Tairitsu上的光束总强度。
Input
第一行含一个正整数 ,表示数据组数;接下来对于每组数据: 共一行,含4个整数 : 和 的含义见上,用来确定Tairitsu的坐标,保证 ; 而对于 和 ,我们约定题意中的 ,且保证 ; ,是一个质数。 保证对于每个数据点有 。
Output
对于每组数据: 可以证明,需要输出的答案“最终照射在Tairitsu上的光束总强度”可表示为一对互质数 :非负数 和正数 的比值 ,且 不是 的倍数。 你需要将 对 取模后再输出;换而言之,找到必然存在的 关于 的逆元 (解释见提示)后,输出 。 输出仅一行,含一个整数代表答案;之后换行恰好一次。
Sample Input
10
0 0 2 1
0 1 2 1
0 2 2 1
1 0 2 1
1 1 2 1
1 2 2 1
2 0 2 1
2 1 2 1
2 2 2 1
992993 994995 11009 999988997
Sample Output
666666672
111111112
740740746
444444448
481481485
111111112
962962970
481481485
234567903
939614532
Hint
样例中的前9个答案的真实值依次为 $ \frac{2}{3},\frac{1}{9},\frac{2}{27},\frac{4}{9},\frac{4}{27},\frac{1}{9},\frac{8}{27},\frac{4}{27},\frac{10}{81} $ 。
Source
2025“钉耙编程”中国大学生算法设计暑期联赛(3)