hdu 2680 多起点一终点
2015-06-19 10:38
232 查看
注意这是一个有向图! 多起点,一终点 反过来,看成一个起点,多个终点,找最短路 因为是有向图 所以u->v 要也要反过来成为v->u
Sample Input
5 8 5 //结点数 边数 终点
1 2 2 //u v w
1 5 3
1 3 4
2 4 7
2 5 6
2 3 5
3 5 1
4 5 1
2
2 3 //起点
4 3 4
1 2 3
1 3 4
2 3 2
1
1
Sample Output
1
-1
# include <iostream> # include <cstdio> # include <cstring> # include <algorithm> # include <cmath> # include <queue> # define LL long long using namespace std ; const int INF=0x3f3f3f3f; const int MAXN=1100; struct qnode { int v; int c; qnode(int _v=0,int _c=0):v(_v),c(_c){} bool operator <(const qnode &r)const { return c>r.c; } }; struct Edge { int v,cost; Edge(int _v=0,int _cost=0):v(_v),cost(_cost){} }; vector<Edge>E[MAXN]; bool vis[MAXN]; int dist[MAXN]; int n ; void Dijkstra(int start)//点的编号从1开始 { memset(vis,false,sizeof(vis)); for(int i=1;i<=n;i++)dist[i]=INF; priority_queue<qnode>que; while(!que.empty())que.pop(); dist[start]=0; que.push(qnode(start,0)); qnode tmp; while(!que.empty()) { tmp=que.top(); que.pop(); int u=tmp.v; if(vis[u])continue; vis[u]=true; for(int i=0;i<E[u].size();i++) { int v=E[tmp.v][i].v; int cost=E[u][i].cost; if(!vis[v]&&dist[v]>dist[u]+cost) { dist[v]=dist[u]+cost; que.push(qnode(v,dist[v])); } } } } void addedge(int u,int v,int w) { E[u].push_back(Edge(v,w)); } int main () { //freopen("in.txt","r",stdin) ; int m , s ; while (scanf("%d %d %d" , &n , &m , &s) !=EOF) { int u , v , w ; int i , j ; for(i=1;i<=n;i++) E[i].clear(); while(m--) { scanf("%d%d%d" , &u , &v , &w) ; addedge(v,u,w) ; } Dijkstra(s) ; scanf("%d" , &m) ; int e ; int MIN = INF ; while(m--) { scanf("%d" , &e) ; if (dist[e] < MIN) MIN = dist[e] ; } if (MIN != INF) printf("%d\n" , MIN) ; else printf("-1\n") ; } return 0 ; }View Code
相关文章推荐
- 红绿黄染色,红绿个数为偶数
- 数值积分方法
- fg bg ctrl + z jobs & 等命令
- SylixOS ARM BSP 文件结构
- 数据结构:链表
- 常用库函数
- Java中对单个或多个字段进行排序
- android apk打包
- 一个很简单的弹窗
- GC算法之串行并行并发
- 速度销毁 修改门灯并寻找子物体发送代码 更换纹理图片 物体添加删除代码
- 关于 redis、memcache、mongoDB 的对比
- [转帖]易飞9.0.9注册机
- three.js 入门
- 重载背景的对话框上的picture双缓冲绘图
- ASP.NET MVC中的Session设置
- Native App执行JS
- 6.824 Lab4: Cache Locks回顾
- 欢迎使用CSDN-markdown编辑器
- 终于解决企业账号开发支付问题