zoukankan      html  css  js  c++  java
  • floyd判环算法(龟兔赛跑算法)

    floyd判环算法(龟兔赛跑算法)

    注意,这个算法是用来判断一条链+一条环的图,环的长度或者环与链的交界处的,所以此floyd非彼floyd(虽然都是一个人想出来的)。

    示例图

    (图不是我的)

    如果只要求环的长度的话,只要让h和t相遇,然后再让h跑一圈,同时计算出步数就行了。

    如果要算出链和环的交界点呢?首先,指针h和t同时从S出发,速度一个为2,一个为1(不要在意细节)。当t走到链和环的交界点时,在右边的ht的距离等于st的距离。设st的距离为x,在左边的ht距离为y,那么环的长度就是x+y。现在让h和t继续走,直到m相交,那么显然右边的tm的距离就是y。由于环的长度是x+y,所以左边的tm长度就为x。现在让两个等速的点一个在s,一个在m,同时走,就会在t碰头,于是交界处的点就求出来了。

    由于codevs又双叒叕上不去了,所以暂时没有题目。

  • 相关阅读:
    日报10.11
    日报10.9
    日报10.8
    日报10.7
    换马甲啦
    CSP2019知识点整理
    字符logo存档
    QHDYZ模拟赛20191027 提前透题
    数竞大佬jhc的三角函数复习题
    IO流
  • 原文地址:https://www.cnblogs.com/MyNameIsPc/p/7976371.html
Copyright © 2011-2022 走看看