A. 小Y的随机迷宫闯关记

    Type: Default File IO: migong 1000ms 256MiB

小Y的随机迷宫闯关记

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

在一片由树形迷宫组成的奇幻森林里,所有道路连通成一棵无根树,我们将1号节点定为树根,这里是小Y心心念念的家。整座迷宫没有环路、没有孤立区域,每个非根节点都只有一条通往根节点的向上路径,结构全程固定,不会发生任何变化。

小Y被困在迷宫的某个节点上,他唯一的目标就是沿着迷宫道路,一步步走回1号节点的家中。可这座迷宫被施加了特殊的随机魔法,行走规则被严格限定,小Y只能依靠自己的智慧和有限的道具,尽可能掌控随机性,顺利抵达终点。

  • 小Y每完成一次移动算作一步,步数从1开始依次递增,每一步的行动模式,完全由当前步数是奇数步还是偶数步决定,没有任何变通余地:
  • 奇数步(第1、3、5……步):强制定向,无随机可能 每当轮到奇数步移动,迷宫的强制魔法会立刻生效,小Y必须朝着根节点1的方向向上走一步,没有其他任何选择。这一步完全可控,不会出现任何随机偏移,能稳稳朝着家的方向靠近一步。
  • 偶数步(第2、4、6……步):随机失控,硬币可控 偶数步是整场闯关中最不确定的时刻,迷宫的随机魔法会彻底爆发:如果小Y不借助道具干预,他会等概率随机走向当前节点的任意一个相邻节点,有可能碰巧向上靠近家,也有可能走回原路、甚至偏向其他分支,彻底偏离回家路线,随机性完全不受自身控制。 好在小Y随身携带了特殊的掌控硬币,这是他对抗随机魔法的唯一法宝。每到偶数步,只要花费1枚掌控硬币,就能暂时破除随机魔法,强制自己和奇数步一样,稳稳朝着根节点1的方向向上走一步,彻底规避随机风险,牢牢把控行进方向。

定义f(v,p)f(v,p)为小Y当前在v点,还有p枚硬币情况下走到家的期望步数。
你需要帮助小Y计算 q q 个询问。每个查询包含一对 (vi,pi)(v_i, p_i),你需要计算 f(vi,pi) f(v_i, p_i) 998244353 998\,244\,353 的值。

具体来说,令 M=998244353 M = 998\,244\,353 。结果可以表示为一个不可约分数 pq \frac{p}{q} ,其中 p p q q 是整数且 q≢0(modM) q \not\equiv 0 \pmod{M} 。你需要输出 pq1modM p \cdot q^{-1} \bmod M 。换句话说,输出满足 0x<M 0 \le x < M xqp(modM) x \cdot q \equiv p \pmod{M} 的整数 x x

输入格式

输入包含多个测试用例。第一行为测试用例的数量 t t 1t103 1 \le t \le 10^3 )。

对于每个测试用例,第一行包含两个整数 n n q q 2n2000 2 \le n \le 2000 1q2000 1 \le q \le 2000 ),分别表示树的顶点数和查询数量。

接下来的 n1 n - 1 行每行描述一条树的边,包含两个整数 ui u_i vi v_i 1ui,vin 1 \le u_i, v_i \le n uivi u_i \neq v_i ),表示节点 ui u_i vi v_i 之间有一条边。

接下来的 q q 行中每行包含两个整数 vi v_i pi p_i 2vin 2 \le v_i \le n 0pin 0 \le p_i \le n ),表示每个查询的节点和初始硬币数。

保证输入的边构成一棵树,并且所有测试用例的 n n 之和不超过 2000 2000 q q 之和不超过 2000 2000

输出格式

对于每个测试用例,输出 q q 个整数,表示每个查询 f(vi,pi) f(v_i, p_i) 998244353 998\,244\,353 的结果。

形式上,令 M=998244353 M = 998\,244\,353 。可以证明答案可以表示为不可约分数 pq \frac{p}{q} ,其中 p p q q 是整数且 q≢0(modM) q \not\equiv 0 \pmod{M} 。输出满足 0x<M 0 \le x < M xqp(modM) x \cdot q \equiv p \pmod{M} 的整数 x x

2
4 4
1 2
2 3
2 4
2 0
3 0
4 0
3 1
12 10
1 2
2 3
2 4
1 5
5 6
6 7
6 8
6 9
8 10
10 11
10 12
6 0
9 0
10 0
11 0
3 1
7 1
10 1
12 1
12 2
11 12
1
6
6
2
4
9
8
15
2
3
6
9
5
5

说明/提示

在第一个测试用例中,树的结构如下:

第一个查询中,期望值为 1 1 ,因为机器人从顶点 2 2 出发,一步就到达了顶点 1 1 ,过程结束。

第二个查询中的期望步数计算如下(x x 为步数):

  • P(x<2)=0 P(x < 2) = 0 ,因为距离顶点 1 1 2 2 ,机器人无法在更少的步数内到达。
  • P(x=2)=13 P(x = 2) = \frac{1}{3} ,因为只有一种步骤序列使 x=2 x = 2 。即 3120.331 3 \rightarrow_{1} 2 \rightarrow_{0.33} 1 ,概率为 113 1 \cdot \frac{1}{3}
  • P(xmod2=1)=0 P(x \bmod 2 = 1) = 0 ,因为机器人只能通过偶数步数到达顶点 1 1
  • P(x=4)=29 P(x = 4) = \frac{2}{9} :可能路径为 $3 \rightarrow_{1} 2 \rightarrow_{0.67} [3, 4] \rightarrow_{1} 2 \rightarrow_{0.33} 1$。
  • P(x=6)=427 P(x = 6) = \frac{4}{27} :可能路径为 $3 \rightarrow_{1} 2 \rightarrow_{0.67} [3, 4] \rightarrow_{1} 2 \rightarrow_{0.67} [3, 4] \rightarrow_{1} 2 \rightarrow_{0.33} 1$。
  • 一般情况下,P(x=i2)=2i13i P(x = i \cdot 2) = \frac{2^{i - 1}}{3^i}

因此,$f(v, p) = \sum_{i=1}^{\infty}{i \cdot 2 \cdot \frac{2^{i - 1}}{3^i}} = 6$。

第二个测试用例中,树的结构如下:

云南省青少年编程挑战赛动态规划专项赛提高组

Not Attended
Status
Done
Rule
IOI
Problem
4
Start at
2026-3-28 14:00
End at
2026-3-28 18:00
Duration
4 hour(s)
Host
Partic.
33