#P15264. [USACO26JAN2] Cow Circle P

[USACO26JAN2] Cow Circle P

说明

农夫约翰有 NN1N50001 \leq N \leq 5000)头奶牛站在一个环形跑道上,该跑道被等分为 MM1M1061 \leq M \leq 10^6)个位置,沿顺时针编号为 00M1M-1。奶牛 ii 初始时位于位置 xix_i,其中 0=x1<x2<<xN<M0 = x_1 < x_2 < \dots < x_N < M

对于每头奶牛 1iN1 \leq i \leq N,奶牛 ii 将独立且随机地选择面朝顺时针或逆时针方向,每个方向有特定的概率。一旦奶牛选择了她的初始方向,她就开始以恒定速度(每分钟一个位置)沿该方向连续移动。当两头奶牛相遇(即它们占据同一位置)时,它们会相互反弹:立即反转它们的方向,并以相同速度继续沿新方向移动。

农夫约翰想知道奶牛 11 最终会在哪里。对于每个 0i<M0 \leq i < M,求在 KK1K10181 \leq K \leq 10^{18})分钟后奶牛 11 位于位置 ii 的概率。

输入格式

第一行包含 TT1T1001 \leq T \leq 100),表示独立测试用例的数量。每个测试用例的格式如下:

  • 每个测试用例的第一行包含三个整数 NN1N50001 \leq N \leq 5000)、MM1M1061 \leq M \leq 10^6)和 KK1K10181 \leq K \leq 10^{18})。
  • 第二行包含 NN 个整数 p1,,pNp_1, \dots, p_N0pi<109+70 \leq p_i < 10^9 + 7),其中如果奶牛 ii 顺时针移动的概率是 aibi\frac{a_i}{b_i},那么 pibiai(mod109+7)p_i \cdot b_i \equiv a_i \pmod{10^9+7}
  • 第三行(即最后一行)包含 NN 个整数 x1,x2,,xNx_1, x_2, \dots, x_N

保证所有测试用例的 N2N^2 之和不超过 500025000^2,且所有测试用例的 MM 之和不超过 10610^6

输出格式

每个测试用例输出一行。每个测试用例的输出行应格式如下:

  • 对于每个 0i<M0 \leq i < M,令 piqi\frac{p_i}{q_i} 表示 KK 分钟后奶牛 11 位于位置 ii 的概率。输出 MM 个由空格分隔的整数 piqi1(mod109+7)p_iq_i^{-1} \pmod{10^9 + 7}(其中 piqi1qipi(mod109+7)p_iq_i^{-1} \cdot q_i \equiv p_i \pmod{10^9+7})。
3
2 2 1
500000004 500000004 
0 1
3 3 1
500000004 500000004 500000004
0 1 2
5 10 13
500000004 1 500000004 0 500000004
0 3 4 7 9
500000004 500000004
500000004 250000002 250000002
0 0 0 125000001 375000003 0 125000001 375000003 0 0

提示

对于第一个测试用例,两头奶牛都有 12\frac{1}{2} 的概率选择任一方向。如果两者选择相同方向,它们最终会交换位置(因此奶牛 11 最终在位置 11)。否则,它们会在中间反弹并返回原始位置。因此,奶牛 11 最终在位置 00 的概率为 12\frac{1}{2},在位置 11 的概率为 12\frac{1}{2}

对于第二个测试用例,所有奶牛再次有 12\frac{1}{2} 的概率选择任一方向。对于每种方向组合,以下是奶牛 11 的最终位置。

  • 顺时针、顺时针、顺时针:11
  • 顺时针、顺时针、逆时针:11
  • 逆时针、逆时针、逆时针:22
  • 逆时针、顺时针、逆时针:22
  • 顺时针、逆时针、顺时针:00
  • 顺时针、逆时针、逆时针:00
  • 逆时针、顺时针、顺时针:00
  • 逆时针、逆时针、顺时针:00

评分

  • 输入 2:K100K \leq 100N10N \leq 10
  • 输入 3:N10N \leq 10
  • 输入 4-7:N35003\sum N^3 \leq 500^3
  • 输入 8-11:K<M2K < \frac{M}{2}
  • 输入 12-15:无额外约束。

翻译由 DeepSeek 完成