参考博客:
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 }