今天恢复在数据结构网站刷题。
第一题:1086
看到题目标题上让我用Floyd判带负环最短路,我感到很奇怪,Floyd怎么能判带有负环的最短路呢?
后来上网查了一下,发现用Floyd可以判环,但我不知道如何判断是否有负环,而我学Floyd的时候老师说的是不能判负环。
上一道类似的题目我是用Bellman-Ford做的,这道题还需要再放一放。
第二题:1087
这道题上面竟然也让用Floyd做,这道题就让我更奇怪了,N=2500的范围N3算法怎么能过呢?而且这道题很明显是一个单源最短路。于是我用了Dijkstra的堆优化算法。
AC代码:
第三题:1088
这道题题目标题上的信息就更不对了。这道题明明是要求起点到终点的次短路,标题上竟然说“最短路”!
次短路算法我没学过,刚刚看了一篇(已附上链接),发现次短路也就是在最短路的基础上做一些小改动,也可以用Dijkstra算法实现。
AC代码:
今天最大的收获就是学了次短路算法。