1、如何判负环
用spfa 如果一个点进队n次, 那么一定有负环。
或者用cnt数组表示1-x的最短路的边, 在更新节点时cnt[y] = cnt[x] + 1。如果发现 一个点的cnt 大于n 则存在负环。
可以用dfs换bfs的操作,加快速度, 但是最坏的速度依旧可以到达O(nm)如果还是超时, 可以迫不得已采用卡时的操作, 给队列的总长度或者所有点的入队总次数设置一个上界。超出其上界就直接退出。可能会判错。
1、如何判负环
用spfa 如果一个点进队n次, 那么一定有负环。
或者用cnt数组表示1-x的最短路的边, 在更新节点时cnt[y] = cnt[x] + 1。如果发现 一个点的cnt 大于n 则存在负环。
可以用dfs换bfs的操作,加快速度, 但是最坏的速度依旧可以到达O(nm)如果还是超时, 可以迫不得已采用卡时的操作, 给队列的总长度或者所有点的入队总次数设置一个上界。超出其上界就直接退出。可能会判错。