#aBC291F. [ABC291F] Teleporter and Closed off
[ABC291F] Teleporter and Closed off
AT_abc291_f [ABC291F] Teleporter and Closed off
题目描述
有 个城市,编号为城市 、城市 、、城市 。
有一些不同城市之间可以通过单向传送器进行移动。对于每个城市 (),可以通过长度为 的仅由 0 和 1 组成的字符串 来表示城市 通过传送器可以直接到达的城市。具体来说,对于 :
- 如果 且 的第 个字符为
1,则可以从城市 直接移动到城市 。 - 否则,不能从城市 直接移动到城市 。
对于 ,请解决以下问题:
通过重复使用传送器,不经过城市 ,能否从城市 移动到城市 ?如果可以,请输出所需传送器使用次数的最小值;如果不可以,输出 。
输入格式
输入以以下格式从标准输入给出。
输出格式
请将 个整数以空格分隔输出在一行。第 ()个数为对应 的问题答案。
输入输出样例 #1
输入 #1
5 2
11
01
11
10
00
输出 #1
2 3 2
输入输出样例 #2
输入 #2
6 3
101
001
101
000
100
000
输出 #2
-1 3 3 -1
说明/提示
限制条件
- 是仅由
0和1组成的长度为 的字符串 - 若 ,则 的第 个字符为
0 - 为整数
样例解释 1
通过传送器,每个城市可以直接到达以下城市:
- 城市 可以到达城市 。
- 城市 可以到达城市 。
- 城市 可以到达城市 。
- 城市 可以到达城市 。
- 城市 无法到达其它城市。
因此,从城市 到城市 的路径有:
- 路径 :城市
- 路径 :城市
- 路径 :城市
不经过城市 的路径有路径 和路径 ,其中最少使用传送器次数的是路径 ,共 次。 不经过城市 的路径只有路径 ,共 次。 不经过城市 的路径只有路径 ,共 次。
因此,依次输出 。
样例解释 2
从城市 到城市 只有一种方式:城市 ,因此对于 ,不存在不经过城市 的路径;对于 ,上述方式满足条件,传送器使用次数为 。
因此,依次输出 。
注意,由于传送器是单向的,虽然可以从城市 到城市 ,但不能从城市 到城市 ,因此不能通过城市 这样的方式移动。
由 ChatGPT 4.1 翻译