【发布时间】:2014-12-30 20:08:56
【问题描述】:
有N个城市,有M条双向道路与之相连,我必须找到两个固定城市A和B之间的最短路径。
但问题是有 Q 查询给定两个城市之间的路径被阻塞,我必须在每个 Q 查询中找到最短路径。
我的蛮力算法的时间复杂度是 O(QNlogN),这给了我超出时间限制的错误,请帮助我如何改进我的解决方案
伪代码:
for u in Q:
cin>>a>>b;
graph[a][b] = graph[b][a] = INFINITY VALUE
dijkstra algorithm();
cout<<Distance[D]<<endl;
MY CODE Which Is giving me Time Limit Exceeded Error
请帮助我如何改进我的算法?
【问题讨论】:
-
这个网站上有很多关于最短路径或 Djikstra 算法的帖子,你应该查找它们,或者去谷歌。
-
@DavidColer 他的时间复杂度表明他正在使用 Dijkstra 算法
-
@DavidColer 请仔细阅读问题,这不是关于缩短路径,而是关于如果一条路径被阻塞时如何 Djikstra 算法效果
-
@PhamTrung 是的,但我的问题有点不同,请仔细阅读
标签: java algorithm shortest-path