题目大意:让你找出有多少条没有交集的最短路。
思路:先用spfa找出可行的边,然后给每条可行的边加上容量1.即表示这条边只能走一次。
接下来跑一遍ISAP就可以得出答案。
关于判断边可行的方法如下。
先从头跑一遍spfa,得到起点到其他所有点的最短路径dis1
再从尾跑一遍spfa,得到终点到其他所有点的最短路径dis2
对于边u-v w
假如dis1[u]+dis2[v]+w==dis1[终点]这可以得出结论,u-v这条边在一条最短路上。然后给这条边加上容量一。
最后跑ISAP即可。
学习了~~