hdu 2066 一个人的旅行-spfa
2015-08-21 10:28
190 查看
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<queue> #define MAX 0x3f3f3f #define M 10000000 using namespace std; /*有些变量的意思你看看单词名就知道了,我基本没有缩写,可以有道词典弄一下*/ queue<int> q; int head[2000]; int vis[2000]; int edgenum; int t,s,d; int mmin; int nearbycity[2000]; int destination[2000]; int dist[2000]; struct Edge { int from,to,val,next; }edge[MAX]; void addedge(int u,int v,int w) { Edge E={u,v,w,head[u]}; edge[edgenum]=E; head[u]=edgenum++; } void spfa(int s) { int i,u,v; memset(vis,0,sizeof(vis)); for(i=0;i<=1000;i++) /* 此处不要写成for(i=0;i<=2*t;i++) 因为t是代表行数,并不是城市的个数, 所以此处最好定义为for(i=0;i<=1000;i++) 从1<=a,b<=1000可以看出 */ dist[i]=M; dist[s]=0; vis[s]=1; q.push(s); while(!q.empty()) { u=q.front(); q.pop(); vis[u]=0; for(i=head[u];i!=-1;i=edge[i].next) { v=edge[i].to; if(dist[v]>dist[u]+edge[i].val) { dist[v]=dist[u]+edge[i].val; if(!vis[v]) { q.push(v); vis[v]=1; } } } } for(i=1;i<=d;i++) { if(mmin>dist[destination[i]]) /* 这里的mmin定义要注意,定义在全局变量 不知道为什么定义成min就是不行,变量模糊 */ { mmin=dist[destination[i]]; } } } int main() { int i,a,b,c; while(scanf("%d%d%d",&t,&s,&d)!=EOF) { edgenum=0; memset(head,-1,sizeof(head)); mmin=M; for(i=1;i<=t;i++) { scanf("%d%d%d",&a,&b,&c); addedge(a,b,c); addedge(b,a,c); } for(i=1;i<=s;i++) { scanf("%d",&nearbycity[i]); } for(i=1;i<=d;i++) { scanf("%d",&destination[i]); } for(i=1;i<=s;i++) { spfa(nearbycity[i]); } printf("%d\n",mmin); } }
相关文章推荐
- mongodb创建集合
- hdu 1016 Prime Ring Problem(DFS)
- codeforces 177B2 B2. Rectangular Game(数论)
- href="javascript:void(0);"与#差异
- css style与class之间的区别,cssclass
- AD域撤销域用户管理员权限方案
- HTTP协议请求方式: 中GET、POST和HEAD的介绍
- bzoj1251: 序列终结者
- iOS开发~CocoaPods使用详细说明
- UVa 1513 / UVALive 5902 Movie collection (树状数组)
- java中abstract怎么使用
- App工程结构搭建:几种常见Android代码架构分析
- win7 64位解决Infragistics.NetAdvantage 安装时总是提示%SystemDriver%inetpub\wwwroot错误的方法
- 使用mac下Fiddler的替代工具Charles进行手机抓包
- BOM——浏览器对象模型(Browser Object Model)
- python如何安装pip和easy_installer工具
- 字符串中利用正则表达式提取出数字,并存如数组
- jdk带的基本类库rt.jar 和 jre中的核心类库有什么区别
- JPA 批注参考
- 46家公司程序题答案,均通过上机验证