Bellman()算法

来源:互联网 发布:redis集群数据同步问题 编辑:程序博客网 时间:2024/05/16 07:50
int relax(int a,int b,int val){if(dis[b]>dis[a]+val){dis[b]=dis[a]+val;path[b]=a;return 1;}return 1;}int Bellman(){for(int i=1;i<=N;i++){dis[i]=inf;}dis[sta]=0;for(int i=1;i<N;i++){int temp=0;for(int j=1;j<=M;j++)//无向图的话 是2*M{if(relax(e[j][0],e[j][1],e[j][2]))temp=1;}if(!temp)break;}for(int i=1;i<=M;i++){if(relax(e[i][0],e[i][1],e[i][2]))flag=1;}return dis[end];}