dijsktra演算法:
偽**:
清除所有標記
d[0] = 0, 其他d[i] = intmax
for (1到n)
//dijkstra演算法的應用
#include using namespace std;
const int max = 201;
const int intmax = 10000000;
int map[max][max];
int dist[max];
bool visited[max];
int n, m, s, e;
int i, j;
void dijsktra() }}
int main()
for (i = 0; i < m; i++)
} cin >> s >> e;//起點和終點
memset (visited, 0, sizeof(visited));
for (i = 0; i < max; i++)
dist[i] = intmax;
dijsktra();
if (dist[e] == intmax) cout << -1 << endl;
else cout << dist[e] << endl;
} return 0;
}
HDOJ1874 暢通工程續
題目鏈結 求單源最短路的題,因為邊權非負,所以可以用dijkstra。這題有一點需要注意的地方是有重邊,在讀資料時取較小的即可。view code 1 include 2 include 3 define min a,b a 4 define n 200 5 define inf 2000000 6...
HDOJ 1874 暢通工程續 Floyd
題意 求兩村之間最短距離。思路 赤裸裸的floyd。include define maxn 222 define inf 2139062143 int map maxn maxn n void floyd int main int m,a,b,c while scanf d d n,m 2 int ...
1874暢通工程續 Dikstra Floyd
problem description 某省自從實行了很多年的暢通工程計畫後,終於修建了很多路。不過路多了也不好,每次要從乙個城鎮到另乙個城鎮時,都有許多種道路方案可以選擇,而某些方案要比另一些方案行走的距離要短很多。這讓行人很困擾。現在,已知起點和終點,請你計算出要從起點到終點,最短需要行走多少距...