dijkstra算法模板可优化

#include
#include
#include
#include
#define INF 0x3f3f3f3f
using namespace std;

int map[1000][1000];
int dist[1000];
int visted[1000];
int edgenum,nodenum,source;

void init()
{
	int i,j;
	int u,v,weight;
	cin>>edgenum>>nodenum>>source;
	for(i=1;i<=nodenum;i++)
	{
		dist[i]=INF;//存储起点到各个点之间的距离 
		visted[i]=0;//表示未访问 
	}
	dist[source]=0;
	for(i=1;i<=nodenum+1;i++)
	{
		for(j=1;j<=nodenum+1;j++)
		{
			map[i][j]=INF;//初始化 
		}
	}
	for(i=1;i<=edgenum;i++)
	{
		cin>>u>>v>>weight;
		if(map[u][v]>weight)
		{
			map[u][v]=weight;
		}
		if(u==source)
		{
			dist[v]=weight;
		}
	}
	/*cout<mmin)
			{
				mmin=dist[j];
				pos=j;
			}
		}
		if(i==1)
		{
			cout<dist[pos]+map[pos][i])
			{
				dist[j]=dist[pos]+map[pos][i];
			}
		}
	}
	return ;
}

int main()
{
	int i;
	init();//初始化数据 
	dijkstra();
	//cout<

你可能感兴趣的:(acm-dijkstra)