floyd-warshall演算法:時間複雜度o(v^3)一般不用 演算法模板
#include #include #include using namespace std;
const int max_v = 110;
const int inf = 0x3f3f3f3f;
int d[max_v][max_v];//d[u][v]表示邊e=(u,v)的權值(不存在時設為inf,不過d[i][i]=0)
int v,m; //頂點和邊數
void warshall_floyd() }
int main()
warshall_floyd();//以p中位置為0的頂點為源點,球其到其餘各頂點的最短距離
printf("%d\n", d[0][v - 1]);
} return 0;
}
dijkstra演算法:時間複雜度o(v^2) 演算法模板
#include #include #include using namespace std;
const int max_v = 110;
const int inf = 0x3f3f3f3f;
int cost[max_v][max_v]; //cost[u][v]表示邊e=(u,v)的權值,(不存在時這條邊設為inf)
int d[max_v]; //頂點s出發的最短距離
bool used[max_v]; //已經使用過的圖
int v,m; //定點數
//求從s出發到各個頂點的最短距離
void dijkstra(int s)
if(v == -1) break;
used[v] = true; //標記為使用
for(int u = 0;u < v;u ++)
} }
int main()
dijkstra(0);//以p中位置為0的頂點為源點,球其到其餘各頂點的最短距離
printf("%d\n", d[v - 1]);
} return 0;
}
優先佇列優化後的dijkstra演算法:時間複雜度o(e)
#include #include #include #include #include using namespace std;
const int inf = 0x3f3f3f3f;
const int max_v = 110;
struct edge ;
typedef pairp; //first為最短距離,second為頂點序號
int v,m; //頂點和邊的數
vectorg[max_v]; //g[i]存放的是第i個點到 其他點的序號和權值
int d[max_v]; //d[i]存放的是s到i的最短距離
void dijkstra_pri(int s)
} }}int main()
dijkstra_pri(0);
printf("%d\n",d[v-1]);
while(v --) g[v].clear(); //清空g陣列
} return 0;
}
spfa演算法:複雜度o(ve) 演算法模板
#include #include #include #include #include using namespace std;
const int inf = 0x3f3f3f3f;
const int max_v = 110;
struct edge ;
int v, m; //頂點數,邊數
vectorg[max_v]; //g[i]存放的是第i個點到 其他點的序號和權值
int d[max_v]; //d[i]存放的是指定節點s到i的最短距離
bool vis[max_v]; //vis[i]標記第i個頂點是否在佇列
void spfa(int s)
}} }
}int main()
spfa(0);
printf("%d\n",d[v-1]);
while(v --) //清空g陣列
g[v].clear();
} return 0;
}
HDU 2544 最短路 最短路
最近複習了最短路徑的演算法,就寫了4個版本的測試。正好是模板題,就果斷a之。dijkstar版本 include include include include include include includeusing namespace std define n 110 define max 99...
hdu 2544 最短路(最短路)
time limit1000 ms memory limit32768 kb 在每年的校賽裡,所有進入決賽的同學都會獲得一件很漂亮的t shirt。但是每當我們的工作人員把上百件的衣服從商店運回到賽場的時候,卻是非常累的!所以現在他們想要尋找最短的從商店到賽場的路線,你可以幫助他們嗎?input輸入...
HDU2544最短路(最短路徑)
description 在每年的校賽裡,所有進入決賽的同學都會獲得一件很漂亮的t shirt。但是每當我們的工作人員把上百件的衣服從商店運回到賽場的時候,卻是非常累的!所以現在他們想要尋找最短的從商店到賽場的路線,你可以幫助他們嗎?input 輸入包括多組資料。每組資料第一行是兩個整數n m n 1...