#P17141. [NOI 2026] 传送
[NOI 2026] 传送
题目描述
国共有 座城市,编号为 。这 座城市由 条道路连接,形成树形结构。第 ()条道路连接城市 和 ,从其一端的城市到达另一端需要耗费 单位的时间。
为了提升通行效率, 国研发了一种新型传送门。每座城市中均有一扇传送门。使用传送门同样耗费 单位时间,但由于系统尚不稳定,它会将使用者 等概率 地传送到所有 座城市之一。注意:使用传送门也可能被传送到当前所在的城市。
为了检测传送门的效果, 国进行了 次测试。第 ()次测试要求测试员从城市 出发,去往城市 。在从起点前往终点的过程中,测试员可以选择沿道路移动,或是使用传送门。由于可能的通行方式很多,测试员需要计算出期望耗时最短的通行方式。
具体地,定义一种通行方式如下:对于每座非终点的城市,选择一座与其相邻的城市或是使用传送门,每当测试员到达该城市时,均按事先确定的方式移动,即移动至该相邻的城市,或使用传送门。
形式化地,一种通行方式可以用一个长度为 的序列 表示,其中 ,且对于所有 ,均有 与 相邻,或 。每当测试员到达城市 ()时,若 ,则测试员将移动到 ,否则测试员将使用传送门。
称一种通行方式是合理的,当且仅当其期望耗时为有限值。
对于每次测试,请计算在所有合理的通行方式中,期望耗时的最小值。
【实现细节】
选手不需要,也不应该实现 main 函数。
选手需要确保提交的程序源文件包含头文件 teleport.h,即在程序开头加入以下代码:
#include "teleport.h"
选手需要在提交的程序源文件 teleport.cpp 中实现以下函数:
std::vector<std::pair<long long, int>> teleport(int c, int n, int m, std::vector<int> u, std::vector<int> v, std::vector<int> x, std::vector<int> y);
- 分别表示测试点编号、城市数量和测试的次数。 表示该测试点为样例。
- 分别表示每条道路连接的两座城市。
- 分别表示每次测试的起点与终点。
- 该函数需要返回一个长度 恰好 为 的 二元组 序列 ,其中 ()表示第 次测试中,期望耗时的最小值的 最简分数形式 为 。特别地,若期望耗时的最小值为正整数,则视为 。
- 对于每个测试点,该函数会被评测程序调用恰好一次。
本试题目录下的 template_teleport.cpp 是提供的示例代码,选手可参考并实现自己的代码。
输入格式
【测试程序方式】
选手可以在本题目录下使用如下命令编译得到可执行文件:
g++ grader.cpp teleport.cpp -o teleport -O2 -std=c++14 -static
对于编译得到的可执行文件 teleport:
- 可执行文件将从标准输入读入以下格式的数据:
- 第一行包含三个非负整数 。
- 第 ()行包含两个非负整数 。
- 第 ()行包含两个非负整数 。
- 可执行文件将输出以下格式的数据至标准输出:
- 第 ()行包含两个正整数 。
输出格式
无
输入输出样例 #1
输入 #1
0 4 4
0 1
1 2
2 3
0 3
0 1
0 2
1 2
输出 #1
7 3
1 1
2 1
1 1
说明/提示
【样例 解释】
对于第 次测试:
- 若通行方式为 ,则耗时为固定值 。
- 若通行方式为 ,则测试员将不断使用传送门直至离开城市 ,因此期望耗时为 。
- 若通行方式为 ,则测试员将不断使用传送门直至到达城市 或城市 ,因此期望耗时为 。
- 若通行方式为 ,则测试员将永远在城市 与城市 间移动,因此该通行方式不是合理的。
可以证明,期望耗时的最小值为 。
【样例 】
见选手目录下的 teleport/teleport2.in 与 teleport/teleport2.ans。
该样例满足测试点 的约束条件。
【样例 】
见选手目录下的 teleport/teleport3.in 与 teleport/teleport3.ans。
该样例满足测试点 的约束条件。
【样例 】
见选手目录下的 teleport/teleport4.in 与 teleport/teleport4.ans。
该样例满足测试点 的约束条件。
【样例 】
见选手目录下的 teleport/teleport5.in 与 teleport/teleport5.ans。
该样例满足测试点 的约束条件。
【样例 】
见选手目录下的 teleport/teleport6.in 与 teleport/teleport6.ans。
该样例满足测试点 的约束条件。
【样例 】
见选手目录下的 teleport/teleport7.in 与 teleport/teleport7.ans。
该样例满足测试点 的约束条件。
【数据范围】
对于所有测试数据,均有:
- ,;
- 对于所有 ,均有 ,且所有 构成一棵树;
- 对于所有 ,均有 且 。
::cute-table{tuack}
| 测试点编号 | 特殊性质 | ||
|---|---|---|---|
| 无 | |||
| ^ | |||
| ^ | 无 | ||
| ^ | |||
| ^ | 无 | ||
| ^ | 无 | ||
特殊性质 :对于所有 ,均有 且 。
特殊性质 :对于所有 ,均有 。
附件下载
teleport.zip 45.25MB