最短路算法

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
using namespace std;
int map[1000][1000];
int main()
{
	int n,m,i,j,k;
	cin>>n>>m;
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
		{
			if(i==j)
			    map[i][j]=0;
			else map[i][j]=99999999;
		}
	for(i=1;i<=m;i++)
	{
		int x,y,z;
		cin>>x>>y>>z;
		map[x][y]=z;
	}
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			for(k=1;k<=n;k++)
				map[j][k]=min(map[j][k],map[j][i]+map[i][k]);
	for(i=1;i<=n;i++)
	{
	    for(j=1;j<=n;j++)
	    {
	    	cout<<map[i][j];
	    	if(j!=n) cout<<" ";
	    }
    	cout<<endl;
    }
	//system("pause");
	return 0;
}

这是Floyd  O(n^3)

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
using namespace std;
int map[1000][1000],dis[10000],book[10000];
int main()
{
	int n,m;
	cin>>n>>m;
	int i,j,k;
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
		{
			if(i==j)
			    map[i][j]=0;
			else map[i][j]=99999999;
		}
	while(m--)
	{
		int x,y,z;
		cin>>x>>y>>z;
		map[x][y]=z;
	}
	for(i=1;i<=n;i++)
	{
		dis[i]=map[1][i];
	}
	book[1]=1;
	for(i=1;i<=n;i++)
	{
		int u;
		int minn=99999999;
		for(j=1;j<=n;j++)
		{
			if(dis[j]<minn&&book[j]==0)
			{
				minn=dis[j];
				u=j;
			}
		}
		book[u]=1;
		for(j=2;j<=n;j++)
		{
			if(dis[j]>dis[u]+map[u][j])
			    dis[j]=dis[u]+map[u][j];
        }
    }
    for(i=1;i<=n;i++)
    {
        cout<<dis[i];
        if(i!=n) cout<<" ";
    }
	//system("pause");
	return 0;
}

 这是Dijkstra

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
using namespace std;
int x[1000],y[1000],z[1000];
int dis[1000];
int main()
{
	int n,m;
	cin>>n>>m;
	int i,j,k;
	for(i=1;i<=m;i++)
	{
		cin>>x[i]>>y[i]>>z[i];
	}
	for(i=1;i<=n;i++) dis[i]=99999999;
	dis[1]=0;
	for(i=1;i<=n-1;i++)
	{
		for(j=1;j<=m;j++)
		{
			if(dis[y[j]]>dis[x[j]]+z[j]);
			    dis[y[j]]=dis[x[j]]+z[j];
		}
	}
	for(i=1;i<=n;i++)
	{
		cout<<dis[i];
		if(i!=n) cout<<" ";
	}
	//system("pause");
	return 0;
}

 这是Bellman-ford

posted @ 2017-09-20 19:06  Bruce--Wang  阅读(175)  评论(1编辑  收藏  举报