poj1847Tram的dijkstra解法
来源:互联网 发布:苹果手机网络加速软件 编辑:程序博客网 时间:2024/05/22 00:26
题意:
首先输入n,a,b
然后输入n行,第i(1 =< i <= n)行的第一个数字表示从这站出发的列车数目Ki,然后接下来的Ki个数表示目的车站,其中第一个数表示默认目的地,如果需要到其他站需要改变switch,求从a到b需要改变switch的最小次数分析:设默认目的地cost为0,其他为1,那么就变成求最短路径的问题,直接代入公式.
/** Filename: code.cpp* Created: 2017-08-11* Author: wyl6 *[mail:17744454343@163.com]* Desciption: Desciption*/#include <cstdio>#include <cstdlib>#include <iostream>#include <stack>#include <queue>#include <algorithm>#include <cstring>#include <string>#include <cmath>#include <vector>#include <bitset>#include <list>#include <sstream>#include <set>#include <functional>using namespace std;#define INF 1 << 30#define MAX 100typedef pair<int,int> P;int n,a,b;int m,k;int d[101];struct edge{ int cost,to; edge() {} edge(int cost,int to):cost(cost),to(to){};};vector <edge> G[101];void dijkstra(int s){ priority_queue<P,vector<P>,greater<P> > que; fill(d+1,d+n+1,INF); d[s] = 0; que.push(P(0,s)); while (!que.empty()){ P p = que.top(); que.pop(); int v = p.second; for (int i = 0; i < G[v].size(); i += 1){ edge e = G[v][i]; if (d[e.to] > d[v] + e.cost){ d[e.to] = d[v] + e.cost; que.push(P(d[e.to],e.to)); } } } }int main(int argc, char const* argv[]){ cin >> n >> a >> b; for (int i = 1; i <= n; i += 1){ cin >> m; for (int j = 0; j < m; j += 1){ cin >> k; if (j == 0 ) G[i].push_back(edge(0,k)); else G[i].push_back(edge(1,k)); } } dijkstra(a); if(d[b] < INF) printf("%d\n",d[b]); else printf("-1\n"); return 0;}
阅读全文
0 0
- poj1847Tram的dijkstra解法
- poj1847Tram 最短路 floyd dijkstra
- poj1847Tram
- 最短带权路径问题的解法::Dijkstra & Floyd
- hdu 2066 一个人的旅行【Dijkstra】解法
- poj3255Roadblocks之dijkstra解法
- poj3723Conscription之dijkstra解法
- poj1847Tram【floyd】
- POJ 2387 经典解法,优先队列的dijkstra+链式前向星存储
- 最短路径问题(Dijkstra解法)
- 最短路径-迪杰斯特拉解法-Dijkstra法
- hdu1874(dijkstra解法优先队列优化)
- poj3268Silver Cow Party之dijkstra解法
- poj1847Tram (最短路)
- HDU1690(最短路 两种解法 Dijkstra和Floyd)
- POJ2965的枚举解法和高效解法
- 迷宫解法之栈/队列的解法
- 最短路径Floyd算法-POJ1847Tram
- JavaEE技术——JSP
- 朋友
- Torch7.0安装
- Ajax异步回调函数(callback)
- hdu 6085 Rikka with Candies(bitset容器)
- poj1847Tram的dijkstra解法
- 函数表达式---递归
- activiti xml String方式部署
- 解决从jenkins打开robot framework报告会提示‘Opening Robot Framework log failed ’的问题
- HMM终极版
- Linux下查看和添加环境变量
- ubuntu下tensorflow的环境搭建
- Android显示系统框架原理介绍
- Web安全技术方案