最短路径问题
学习路线:离散数学(图论)->C语言->数据结构
最短路径问题(四行代码解决问题) floyd算法:
for(int k=0;k<=n;k++)
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
a[i][j] = min(a[i][j],a[i][k]+a[k][j]);
最短路径问题 dijkstra算法:
for(int i=0;i<n;i++){
int x,min = INF;
for(int j=0;j<n;j++) if(!book[j] && d[j]<=min) min = d[x=j];
book[x] = 1;
for(int j=0;j<n;j++) d[j] = min(d[y],d[x]+map[x][y]);
}