#include#include#include#includeusing namespace std;
#define max 1005
#define inf 9999999
int pre[max];
int d[max];
int head[max];
int used[max][max];//1表示有效邊 0表示無效邊
bool marked[max];
int dis[max];
struct edge;
edge edge[max*max];
int n,m;
int tol;
int spfa()
dis[1] = 0;
marked[1] = true;
que.push(1);
while(!que.empty()) }}
}return dis[n];
}int work()
dis[1] = 0;
marked[1] = true;
que.push(1);
while(!que.empty()) }}
} return dis[n];
} void addedge(int from, int to, int w)
int main()
int ans = spfa();//阻塞路不在最短路上時候 最短路
for(int i = n; pre[i] != -1; i = pre[i])
used[i][pre[i]] = 1;//模擬完當前邊為阻塞路徑後及時 恢復有效邊 繼續模擬其它最短路上的邊
used[pre[i]][i] = 1;
}printf("%d\n",ans);
} return 0;
}
題目鏈結
注意:runtime error (access_violation(g++提交時候) 換為c++則直接報錯
可能 原因:
runtime error (執行時錯誤)就是程式執行到一半,程式就崩潰了。
比如說:
①除以零
②陣列越界:int a[3]; a[10000000]=10;(考慮陣列開小了)
③指標越界:int * p; p=(int *)malloc(5 * sizeof(int)); *(p+1000000)=10;
④使用已經釋放的空間:int * p; p=(int *)malloc(5 * sizeof(int));free(p); *p=10;
⑤陣列開得太大,超出了棧的範圍,造成棧溢位:int a[100000000];
最短路 求最長最短路,求最短路的路徑
hdu 1595 find the longest of the shortest include include include include include include include include include include include include include defi...
最短路之 尋找每兩點之間最短路中的最長路
題目 hdu4460 題意 尋找每兩點之間最短路中的最長路。若存在某兩點不連通,就輸出 1.解答 對每個點spfa,然後找最長的邊。用鄰接鍊錶存 注意 雙向邊!include include include include include include includeusing namespace...
GIS中的最短路徑
前段時間,在mapx上用vb實現了最短路徑的演算法。具體思路是,先在mapx上建立拓樸關係,將拓樸儲存到資料庫中,在分析路徑的時候從資料庫中載入拓樸關係,然後運用dijkstra演算法找出最短路徑。這裡面可能有兩個難點 1 如何快速建立拓樸關係。這裡面又可細分為如何組織拓樸結構 如何建立拓樸關係。2...