hdoj1874 暢通工程續

2021-06-08 17:52:29 字數 702 閱讀 1867

dijsktra演算法:

偽**:

清除所有標記

d[0] = 0, 其他d[i] = intmax

for (1到n)

//dijkstra演算法的應用

#include 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() }}

int main()

for (i = 0; i < m; i++)

} cin >> s >> e;//起點和終點

memset (visited, 0, sizeof(visited));

for (i = 0; i < max; i++)

dist[i] = intmax;

dijsktra();

if (dist[e] == intmax) cout << -1 << endl;

else cout << dist[e] << endl;

} return 0;

}

HDOJ1874 暢通工程續

題目鏈結 求單源最短路的題,因為邊權非負,所以可以用dijkstra。這題有一點需要注意的地方是有重邊,在讀資料時取較小的即可。view code 1 include 2 include 3 define min a,b a 4 define n 200 5 define inf 2000000 6...

HDOJ 1874 暢通工程續 Floyd

題意 求兩村之間最短距離。思路 赤裸裸的floyd。include define maxn 222 define inf 2139062143 int map maxn maxn n void floyd int main int m,a,b,c while scanf d d n,m 2 int ...

1874暢通工程續 Dikstra Floyd

problem description 某省自從實行了很多年的暢通工程計畫後,終於修建了很多路。不過路多了也不好,每次要從乙個城鎮到另乙個城鎮時,都有許多種道路方案可以選擇,而某些方案要比另一些方案行走的距離要短很多。這讓行人很困擾。現在,已知起點和終點,請你計算出要從起點到終點,最短需要行走多少距...