poj2387 spfa图

来源:互联网 发布:java 多态 理解 编辑:程序博客网 时间:2024/05/21 22:25
#include<iostream>using namespace std;int g[1100][1100] = { 0 }, Q[3000] = { 0 }, dist[1100] = { 0 }, vist[3000] = { 0 };void spfa(int s, int m){int i = 0, k = 0, ts = 0, te = 1;Q[ts] = s;dist[s] = 0;while (ts < te){k = Q[ts];vist[k] = 0;for (i = s; i>=1; i--){if (g[k][i]>0 && dist[i] > g[k][i] + dist[k]){dist[i] = dist[k] + g[k][i];if (!vist[i]){Q[te++] = i;vist[i] = 1;}}}ts++;}}int main(){int T = 0, N = 0,i=0,a=0,b=0,len=0;cin >> T >> N;for (i = 1; i <= T; i++){cin >> a >> b >> len;if (g[a][b]==0)        {g[b][a] = g[a][b] = len;}else if (g[a][b]>len){g[b][a]=g[a][b] = len;}}for (i = 0; i < 1100; i++){dist[i] = 999999999;}spfa(N, N);cout << dist[1] << endl;return 0;}

0 0
原创粉丝点击