标签:oop efi stream loop sizeof oid return cost ret
#include<stdio.h> #include<iostream> #define maxn 1000 #define inf 0x3fffffff using namespace std; struct Edage { int from; int to; int cost; }es[maxn]; int d[maxn]; int v,e; //无负圈,求单源最短路 /* 单源最短路:从一个点s到其他点的最短距离 */ void shortest_path(int s) { for(int i=0;i<v;i++) d[i]=inf; d[s]=0; bool update=false; while(true) { update=false; for(int i=0;i<e;i++) { Edage edage=es[i]; if(d[edage.from]!=inf&&d[edage.from]+cost<d[edage.to]) { d[edage.to]=d[edage.from]+cost; update=true; } } if(!update) break; } } //判断是否有负圈 bool find_negative_loop() { memset(d,0,sizeof(d)); for(int i=0;i<v;i++) { for(int j=0;j<e;j++) { Edage edage=es[j]; if(d[edage.from]!=inf&&d[edage.from]+edage.cost<d[edage.to]) { d[edage.to]=d[edage.from]+edage.cost; if(i==v-1) return true; } } } return false; }
标签:oop efi stream loop sizeof oid return cost ret
原文地址:http://www.cnblogs.com/superxuezhazha/p/6362865.html