hdu2544 最短路,dijstra(模板)

题目链接:点击打开链接

#include 
#include
#include
using namespace std;
const int INF=0x3f3f3f3f;
int dis[110],vis[110],v[110][110];
void Dijkstra(int n)
{
    int i,j,pos;
    for(i=1; i<=n; i++)
    {
        vis[i]=0;        //标记数组初始化
        dis[i]=v[1][i];
    }
    vis[1]=1;
    for(i=1; idis[pos]+v[pos][j])
                dis[j]=dis[pos]+v[pos][j];
        }
    }
}
int main()
{
    int N,M,i,j,a,b;
    while(~scanf("%d %d",&N,&M)&&N)
    {
      memset(v,0x3f,sizeof(v));
        for(i=1; i<=M; i++)
        {
           scanf("%d %d",&a,&b);
           scanf("%d",&v[a][b]);
            v[b][a]=v[a][b];
        }
        Dijkstra(N);
       printf("%d\n",dis[N]);
    }
    return 0;
}



你可能感兴趣的:(模板,最短路)