有N个城市,它们之间有M条双向道路相连。我需要找到两个指定城市A和B之间的最短路径。但问题是有Q个查询,其中路径被阻塞了,我需要在每个查询中找到最短路径。我的暴力算法时间复杂度为O(QNlogN),这导致了超时错误。请问如何改进我的解决方案?请帮忙。
伪代码如下:
伪代码如下:
for u in Q:
cin>>a>>b;
graph[a][b] = graph[b][a] = INFINITY VALUE
dijkstra algorithm();
cout<<Distance[D]<<endl;
我的代码,但是出现了超时错误
请帮忙改进我的算法。