HDU 2544 最短路 迪杰斯特拉解法

题目链接


#include
#include
#define INF 9999999
using namespace std;
int N,M,g[105][105],dis[105],A,B,C;
bool v[105];
int dijstra()
{
	for(int i=1;i<=N;i++)
	{
		dis[i]=g[1][i];
	}
	dis[1]=0;
	v[1]=true;
	for(int i=2;i<=N;i++)
	{
		int MIN=INF,pos;
		for(int j=1;j<=N;j++)
		{
			if(v[j]==false&&dis[j]dis[pos]+g[pos][j])
			{
				dis[j]=dis[pos]+g[pos][j];
			}
		}
	}
	return dis[N];
}
int main()
{
	while(cin>>N>>M&&N&&M)
	{	
	memset(g,INF,sizeof(g));
	memset(v,false,sizeof(v));
	memset(dis,0,sizeof(dis));
	for(int i=0;i>A>>B>>C;
		g[A][B]=g[B][A]=C;
	}
	cout<


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