POJ1125 Stockbroker Grapevine SPFA或Floyd
2011-03-23 13:01
399 查看
我写的SPFA
数据很水,0MS
数据很水,0MS
#include<iostream> #include<vector> #include<cstdio> #include<queue> using namespace std; const int INF=1000000; struct GNode { GNode(){} GNode(short num,short len):len(len),num(num){} short len,num; }; const int MAX=110; int Len[MAX]; int SPFA(const vector<vector<GNode> >& Graph,int Source) { for(unsigned i=0;i!=Graph.size();i++) Len[i]=INF; queue<int> Q; Q.push(Source); Len[Source]=0; while(!Q.empty()) { int u=Q.front();Q.pop(); for(unsigned i=0;i!=Graph[u].size();i++) if(Len[Graph[u][i].num]>Len[u]+Graph[u][i].len) { Len[Graph[u][i].num]=Len[u]+Graph[u][i].len; Q.push(Graph[u][i].num); } } return *max_element(Len,Len+Graph.size()); } int main() { int v,n,num,len; while(~scanf("%d",&v) && v) { vector<vector<GNode> > Graph(v); for(int i=0;i!=v;i++) { scanf("%d",&n); while(n--) { scanf("%d%d",&num,&len); Graph[i].push_back(GNode(num-1,len)); } } int mindis=INF,mini,data; for(int i=0;i!=v;i++) { data=SPFA(Graph,i); if(data<mindis) {mindis=data;mini=i;} } printf("%d %d/n",mini+1,mindis); } }
相关文章推荐
- poj 1125 Stockbroker Grapevine(Floyd模板题)
- POJ 1125 Stockbroker Grapevine【floyd】
- POJ 1125 - Stockbroker Grapevine ( floyd最短路 )
- POJ 1125 Stockbroker Grapevine(Floyd)
- POJ - 1125 Stockbroker Grapevine (动态规划理解floyd)
- poj 1125 Stockbroker Grapevine(floyd求最短路)
- POJ 1125 Stockbroker Grapevine(floyd两点间最短距离)
- POJ 1125 Stockbroker Grapevine(floyd)
- poj 1125 Stockbroker Grapevine 很好的一道floyd入门题
- POJ 1125 Stockbroker Grapevine(Floyd)
- POJ 1125 Stockbroker Grapevine【floyd】
- POJ1125 Stockbroker Grapevine【Floyd】
- poj 1125 Stockbroker Grapevine——Floyd
- POJ 1125 Stockbroker Grapevine【floyd简单应用】
- poj1125 Stockbroker Grapevine 图论,任意两点间最短路径,floyd
- POJ 1125 Stockbroker Grapevine(Floyd)
- poj 1125 Stockbroker Grapevine(floyd)
- [poj 1125]Stockbroker Grapevine[Floyd最短路]
- 【POJ1125】Stockbroker Grapevine(动态规划,floyd)
- POJ 1125 Stockbroker Grapevine【floyd简单应用】