bellman-ford是为了解决负权边的问题,而这个问题dij却不能解决。
基本代码
<span style="font-size:14px;">#include <iostream>
using namespace std;
int main()
{
int dis[100],s[100],u[100],v[100];
int n,m,i,j;
cin>>n>>m;
for(i=1;i<=n;i++)
{
cin>>s[i]>>u[i]>>v[i];
}
for(i=1;i<=n;i++)
{
dis[i]=999999;
}
dis[1]=0;
for(i=1;i<=n-1;i++)
{
for(j=1;j<=m;j++)
{
if(dis[u[j]]>dis[s[j]]+v[j])
{
dis[u[j]]=dis[s[j]]+v[j];
}
}
}
for(i=1;i<=n;i++)
cout<<dis[i]<<' ';
}
5 5
2 3 2
1 2 -3
1 5 5
4 5 2
3 4 3</span>