1 条题解
-
0
自动搬运
来自洛谷,原作者为

shuqiang
这个家伙不懒,但是什么也没有留下搬运于
2025-08-24 22:58:57,当前版本为作者最后更新于2024-05-29 13:35:51,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
这题我们可以分成三个部分来解,得到框架代码。
part1
目标:把输入的数据转化成图。
直接按题意模拟即可。
part2
目标:求出 值。
实现:题目要求这个城市走到首都的最小道路数,因为 ,所以我们有几种方法可以求最小道路数。
方法1:Floyd 算法。
这个算法代码很简洁,并且复杂度为 ,正好可以过。建议先完成 B3647。
Floyd 算法的流程:
- 定义 为从点 到点 的最短路径。
- 对于每一个节点 ,检查 是否成立,如果成立就令 。
方法2:Dijkstra 算法。
如过你想优化复杂度,那么这个方法非常合适,因为它的时间复杂度上限只有 。
Dijkstra 算法的流程:
- 先初始化 ,其它为无穷大。
- 找一个最小的 ,此时 已经是最小的,所以不可能有别的路径可以更新 。
- 找到所有与点 连接的点 ,如果通过这个点的路径更短,更新 为 到 的距离。
- 如果全部点都访问完毕,跳出循环,否则回到第 2 步。
part3
目标:判断是否存在把 分成两组的和相等。
实现:可以用 01 背包,背包的花费和价值都是 值,算法复杂度是 ,可以过这题,那么 part3 部分的代码也实现了。
- 1
信息
- ID
- 9877
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 3
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者