Bellman_ford模板

参考博客:

https://blog.csdn.net/u011893609/article/details/81232124 

https://blog.csdn.net/bestsort/article/details/80100039

 1 int n,m;//点数,边数
 2 int d[maxn];
 3 struct edge
 4 {
 5     int s,e;
 6     int w
 7 }e[maxn];
 8 bool bellman(int a,int n)
 9 //求a->其他点的最短路,n为节点个数,可判断负环
10 {
11     ms(d,0x3f);
12     d[a]=0;
13     for(int i=0;i<n-1;i++)
14         for(int j=0;j<m;j++)
15         d[e[j].e]=min(d[e[j].e],d[e[j].s]+e[j].w);
16     for(int i=0;i<m;i++)
17      {
18          if(d[e[j].e]>d[e[j].s]+e[j].w)
19             return true;
20          return false;
21      }
22 }

猜你喜欢

转载自www.cnblogs.com/zuiaimiusi/p/10788101.html