Floyd
由动态规划思想推导出转移公式
再经滚动优化可得
void Floyd(){
for(int k = 1;k <= n;k ++)
for(int i = 1;i <= n;i ++)
for(int j = 1;j <= n;j ++)
d[i][j] = min(d[i][j],d[i][k] + d[k][j]);
}
Dijsktra
直接扔代码吧也没啥好说的
我习惯用堆优化写
struct node{
int d,s;
bool operator < (const node& b)const {
return d > b.d;
}
};
int g[N][N];//邻接矩阵
int d[N];//最短路
bool vis[N];
void Dijsktra(int s){
for(int i =

最低0.47元/天 解锁文章
866

被折叠的 条评论
为什么被折叠?



