2 条题解

  • 0
    @ 2025-8-16 19:21:25

    本题有好几种解法。

    • (一)使用dfs判断是否能抵达终点。
    • (二)定义一个标记数组判断是否重复访问同一个位置,一边跳跃一边判断,如果出现重复,输出“NO”,没有重复,输出“YES”。
    • (三)预处理判断哪些地方会进入死循环,提前打上标记,如果访问到了这些点就直接输出“NO”。

    这些解法都并不难,想学dfs可以看这道题洛谷P1002

    但本题题解给出的思路是这样的:

    首先,这是一个排列,数组中出现的所有数字都不会重复 所以,每个点的上一个点是固定的,这意味着要想走到终点只有一条已经确定的跳跃路线,而且跳跃的次数必然小于n次,陷入死路的路线次数肯定大约n次。 最终,我们可以用一个for循环边跳跃边判断当前点是否是终点,是则输出“YES”并直接结束程序,否则继续循环。当跳跃次数到达n时,结束循环,输出“NO”

    答案如下

    [2025 新生训练赛 1] 已睡一刻一刻一刻

    信息

    ID
    174
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    92
    已通过
    25
    上传者