网站开发的业内人士天津去山西高铁做哪个网站
网站开发的业内人士,天津去山西高铁做哪个网站,杭州排名优化软件,优质聊城做网站费用动态逼近法#xff1a;设立一个先进先出的队列用来保存待优化的结点#xff0c;优化时每次取出队首结点u#xff0c;并且用u点当前的最短路径估计值对离开u点所指向的结点v进行松弛操作#xff0c;如果v点的最短路径估计值有所调整#xff0c;且v点不在当前的队列中#…动态逼近法设立一个先进先出的队列用来保存待优化的结点优化时每次取出队首结点u并且用u点当前的最短路径估计值对离开u点所指向的结点v进行松弛操作如果v点的最短路径估计值有所调整且v点不在当前的队列中就将v点放入队尾。这样不断从队列中取出结点来进行松弛操作直至队列空为止。
#include iostream #include queue #include cstring #define inf 129 using namespace std; int map[105][105]; int dict[105]; queue int Q; bool vis[105]; int c[105]; void build_map(int n,int m) { for(int i0;in;i) for(int j0;jn;j) if(ij) map[i][j]0; else map[i][j]inf; for(int i0;im;i) { int b,e,v; cinbev; map[b][e]map[e][b]v; } } bool SPFA(int n,int x) { for(int i1;in;i) dict[i]inf; dict[x]0; memset(vis,false,sizeof(vis)); memset(c,0,sizeof(c)); Q.push(x); vis[x]true; while(!Q.empty()) { int qQ.front(); Q.pop(); vis[q]false; c[q]; if(c[q]n) return false; for(int i1;in;i) { if(dict[i]dict[q]map[q][i]) { dict[i]dict[q]map[q][i]; if(!vis[i]) { Q.push(i); vis[i]true; } } } } return true; } int main() { int n,m; while(cinnmn!0m!0) { build_map(n,m); if(SPFA(n,1)) coutdict[n]endl; else cout有负环endl; } }
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/87383.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!