hdu2544 最短路 幾種最短路演算法實現

2021-07-28 06:26:20 字數 2246 閱讀 8581

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...