首页 > 试题广场 >

量子网络穿梭

[编程题]量子网络穿梭
  • 热度指数:440 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
在一个未来的量子计算中心,您需要引导一个数据包(Data Packet)通过一个复杂的量子网络。该网络可以被抽象为一个 m \times n 的二维矩阵。网络中的每个节点都有其特定的功能:

- 标准通道 (Standard Channel) : 用数字 0 表示,数据包可以在相邻的标准通道节点之间自由移动,每次移动消耗 1 个时间单位。
- 防火墙 (Firewall) : 用数字 1 表示,这些节点是损坏的或被设置为不可通行,数据包无法进入。
- 量子纠缠门 (Quantum Entanglement Gate) : 用数字 2 表示。网络中存在成对的纠缠门。当数据包进入一个纠缠门时,它可以瞬间、不耗费任何时间地传送到与之配对的另一个纠缠门所在的位置。
- 起点 (Source) : 用符号 S 表示,是数据包的初始位置。
- 终点 (Destination) : 用符号 E 表示,是数据包的目标位置。

您的任务是计算出数据包从起点 S 到达终点 E 所需的最短时间。数据包只能在网络的上下左右四个方向上移动,不能移出网络边界,也不能穿过防火墙。如果数据包无法到达终点,则返回 -1


输入描述:
输入的第一行包含两个正整数 mn (1 \le m, n \le 50),分别代表量子网络的行数和列数。

接下来的 m 行,每行包含 n 个字符,描述了量子网络每个节点的类型。字符集为 \{'0', '1', '2', 'S', 'E'\}


输出描述:
输出一个整数,表示数据包从起点到终点所需的最短时间。如果无法到达,则输出 -1
示例1

输入

4 9
001010000
00000000S
0100E0001
100000001

输出

5

备注:
本题由牛友@Charles 整理上传
如果有多对传送门那它们是怎么匹配的?题目中没说匹配规则呀?
发表于 2025-09-15 17:05:19 回复(2)