AT_abc291_f.[ABC291F] Teleporter and Closed off
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有 N 个城市,编号为城市 1、城市 2、…、城市 N。
有一些不同城市之间可以通过单向传送器进行移动。对于每个城市 i(1≤i≤N),可以通过长度为 M 的仅由 0 和 1 组成的字符串 Si 来表示城市 i 通过传送器可以直接到达的城市。具体来说,对于 1≤j≤N:
- 如果 1≤j−i≤M 且 Si 的第 j−i 个字符为
1,则可以从城市 i 直接移动到城市 j。 - 否则,不能从城市 i 直接移动到城市 j。
对于 k=2,3,…,N−1,请解决以下问题:
通过重复使用传送器,不经过城市 k,能否从城市 1 移动到城市 N?如果可以,请输出所需传送器使用次数的最小值;如果不可以,输出 −1。
输入格式
输入以以下格式从标准输入给出。
N M
S1
S2
⋮
SN
输出格式
请将 N−2 个整数以空格分隔输出在一行。第 i(1≤i≤N−2)个数为对应 k=i+1 的问题答案。
输入输出样例
输入#1
5 2 11 01 11 10 00
输出#1
2 3 2
输入#2
6 3 101 001 101 000 100 000
输出#2
-1 3 3 -1
说明/提示
限制条件
- 3≤N≤105
- 1≤M≤10
- M<N
- Si 是仅由
0和1组成的长度为 M 的字符串 - 若 i+j>N,则 Si 的第 j 个字符为
0 - N,M 为整数
样例解释 1
通过传送器,每个城市可以直接到达以下城市:
- 城市 1 可以到达城市 2,3。
- 城市 2 可以到达城市 4。
- 城市 3 可以到达城市 4,5。
- 城市 4 可以到达城市 5。
- 城市 5 无法到达其它城市。
因此,从城市 1 到城市 5 的路径有:
- 路径 1:城市 1→2→4→5
- 路径 2:城市 1→3→4→5
- 路径 3:城市 1→3→5
不经过城市 2 的路径有路径 2 和路径 3,其中最少使用传送器次数的是路径 3,共 2 次。
不经过城市 3 的路径只有路径 1,共 3 次。
不经过城市 4 的路径只有路径 3,共 2 次。
因此,依次输出 2,3,2。
样例解释 2
从城市 1 到城市 6 只有一种方式:城市 1→2→5→6,因此对于 k=2,5,不存在不经过城市 k 的路径;对于 k=3,4,上述方式满足条件,传送器使用次数为 3。
因此,依次输出 −1,3,3,−1。
注意,由于传送器是单向的,虽然可以从城市 3 到城市 4,但不能从城市 4 到城市 3,因此不能通过城市 1→4→3→6 这样的方式移动。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?