#lCAlydlt60x6305. 天天爱跑步
天天爱跑步
好的,这是整理好的题面,不含解题思路,只包含样例解释。
题目描述
小 C 制作了一款游戏《天天爱跑步》。
游戏地图是一棵 个节点、 条边的树,节点编号 ,任意两个节点之间唯一可达。
现在有 个玩家,第 个玩家的起点为 ,终点为 。
第 秒所有玩家同时从起点出发,以每秒一条边的速度,沿最短路径向终点匀速跑,到终点后立刻结束游戏。
在每个节点 上都有一个观察员,他会在第 秒观察该节点。
一个玩家能被节点 的观察员观察到,当且仅当该玩家在第 秒正好到达节点 。
注意:若一个玩家在第 秒之前到达终点,则终点观察员不能观察到该玩家;若正好在第 秒到达终点,则可以观察到。
任务是:对每个节点 ,输出观察员 能观察到的玩家数量。
输入格式
第一行两个整数 ,表示树的节点数(也是观察员数)和玩家数。
接下来 行,每行两个整数 ,表示 与 之间有一条边。
接下来一行 个整数 ,表示节点 的观察员观察时间。
接下来 行,每行两个整数 ,表示一个玩家的起点和终点。
输出格式
一行 个整数,第 个整数表示节点 的观察员能观察到的人数。
数据范围
输入样例
6 3
2 3
1 2
1 4
4 5
4 6
0 2 5 1 2 3
1 5
1 3
2 6
输出样例
2 0 0 1 1 1
样例解释
,。
树的结构:
3
|
2
|
1
|
4
/ \
5 6
边:2-3, 1-2, 1-4, 4-5, 4-6。
观察时间 :
节点 1: 0
节点 2: 2
节点 3: 5
节点 4: 1
节点 5: 2
节点 6: 3
玩家路径:
- 玩家 1:从 1 到 5,路径:1 → 4 → 5,长度 2,第 0 秒在 1,第 1 秒在 4,第 2 秒在 5。
- 玩家 2:从 1 到 3,路径:1 → 2 → 3,长度 2,第 0 秒在 1,第 1 秒在 2,第 2 秒在 3。
- 玩家 3:从 2 到 6,路径:2 → 1 → 4 → 6,长度 3,第 0 秒在 2,第 1 秒在 1,第 2 秒在 4,第 3 秒在 6。
计算每个观察员看到的人数:
-
节点 1 ():
玩家 1 第 0 秒在 1(起点) ✅
玩家 2 第 0 秒在 1(起点) ✅
玩家 3 第 1 秒在 1(不是第 0 秒) ❌
共 2 人 → 输出 2。 -
节点 2 ():
玩家 1 第 2 秒在 5 ❌
玩家 2 第 1 秒在 2 ❌
玩家 3 第 0 秒在 2 ❌
共 0 人 → 输出 0。 -
节点 3 ():
玩家 2 第 2 秒到 3 ❌(2 ≠ 5)
其他玩家不到 3
共 0 人 → 输出 0。 -
节点 4 ():
玩家 1 第 1 秒在 4 ✅
玩家 2 不在 4
玩家 3 第 2 秒在 4 ❌
共 1 人 → 输出 1。 -
节点 5 ():
玩家 1 第 2 秒在 5 ✅
其他人不在
共 1 人 → 输出 1。 -
节点 6 ():
玩家 3 第 3 秒在 6 ✅
其他人不在
共 1 人 → 输出 1。
最终输出:2 0 0 1 1 1