题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874
Dijsktra算法:
伪代码:
清除所有标记
d[0] = 0, 其他d[i] = intmax
for (1到n) {
所有没有标记的点中寻找d[i]最小的点x
标记x
对以x出发的点进行更新所有边(x,y) 即:d[y] = min( d[y], d[x]+map[x][y] )
}
//Dijkstra算法的应用
#include <iostream>
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()
{
for (i = 0; i < n; ......
阅读全文