Tram POJ - 1847 spfa
#include<iostream>
#include<algorithm>
#include<queue>
#include<cstdio>
#include<cstring>
using namespace std;
const int N=,INF=0x3f3f3f3f;
int h[N],e[N],v[N],w[N],ne[N],idx;
int dist[N];
bool st[N];
int n,beg,en,ans;
void add(int a,int b,int c)
{
v[idx]=a;
e[idx]=b;
w[idx]=c;
ne[idx]=h[a];
h[a]=idx++;
}
void spfa(int sx)
{
queue<int>q;
memset(dist,0x3f,sizeof dist);
memset(st,,sizeof st);
st[sx]=;
q.push(sx);
dist[sx]=;
while(q.size())
{
int u=q.front();
q.pop();
st[u]=;
for(int i=h[u];i!=-;i=ne[i])
{
int j=e[i];
if(dist[j]>dist[u]+w[i])
{
dist[j]=dist[u]+w[i];
if(!st[j])
{
st[j]=;
q.push(j);
}
}
}
}
if(dist[en]==INF)
cout<<"-1"<<endl;
else
cout<<dist[en]<<endl;
}
void init()
{
ans=;
memset(h,-,sizeof(h));
}
void getmap()
{
int i,j;
for(i=;i<=n;i++)
{
int k;
scanf("%d",&k);
for(j=;j<k;j++)
{
int a;
scanf("%d",&a);
if(j==)
add(i,a,);
else
add(i,a,);
}
}
}
int main()
{
while(~scanf("%d%d%d",&n,&beg,&en))
{
init();
getmap();
spfa(beg);
}
return ;
}
Tram POJ - 1847 spfa的更多相关文章
- Day4 - L - Tram POJ - 1847
Tram network in Zagreb consists of a number of intersections and rails connecting some of them. In e ...
- Tram POJ - 1847
题目链接:https://vjudge.net/problem/POJ-1847 思路:想从A到B使用开关少,想清楚了就是个简单的最短路,可以把不用开开关为权值0, 要开开关为权值1,就是求A到B开开 ...
- POJ 1847 Tram (最短路径)
POJ 1847 Tram (最短路径) Description Tram network in Zagreb consists of a number of intersections and ra ...
- 最短路 || POJ 1847 Tram
POJ 1847 最短路 每个点都有初始指向,问从起点到终点最少要改变多少次点的指向 *初始指向的那条边长度为0,其他的长度为1,表示要改变一次指向,然后最短路 =========高亮!!!===== ...
- poj 1847 最短路简单题,dijkstra
1.poj 1847 Tram 最短路 2.总结:用dijkstra做的,算出a到其它各个点要改向的次数.其它应该也可以. 题意: 有点难懂.n个结点,每个点可通向ki个相邻点,默认指向第一个 ...
- [最短路径SPFA] POJ 1847 Tram
Tram Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 14630 Accepted: 5397 Description Tra ...
- poj 1847 Tram【spfa最短路】
Tram Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 12005 Accepted: 4365 Description ...
- POJ 1847 Tram --set实现最短路SPFA
题意很好懂,但是不好下手.这里可以把每个点编个号(1-25),看做一个点,然后能够到达即为其两个点的编号之间有边,形成一幅图,然后求最短路的问题.并且pre数组记录前驱节点,print_path()方 ...
- poj 1847( floyd && spfa )
http://poj.org/problem?id=1847 一个水题,用来熟悉熟悉spfa和floyd的. 题意:有m条的铁路,要从x,到y, 之后分别就是条铁路与其他铁路的交点.第一个输入的为有n ...
随机推荐
- leetcode--js--Median of Two Sorted Arrays
问题描述: There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of ...
- css中的盒子模型是什么?
什么是CSS 盒子模型(Box Model) 所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用. CSS盒模型本质上是一个盒子,封装周 ...
- redis_入门
Redis_day01 1. NoSql 1.1 NoSql是什么 NoSQL(不仅仅是SQL not only SQL),泛指非关系型的数据库.随着互联网web2.0网站的兴起,传统的关系数据库在处 ...
- idea创建基于maven的web项目
1.点击create new project,选择maven,点击next 2.输入项目信息,点击finish 3.进入项目后,点击菜单File->Project Structure开始配置项目 ...
- everspin最新1Gb容量扩大MRAM吸引力
everspin提供了8/16-bit的DDR4-1333MT/s(667MHz)接口,但与较旧的基于DDR3的MRAM组件一样,时序上的差异使得其难以成为DRAM(动态随机存取器)的直接替代品. ...
- xcode 11.3 发布ipa采坑记录
为了适配ios13,特意更新了xcode11.3 .更新完后发现 application loader没有了,然后蒙了. 然后网上一顿搜索,归纳出了三种上传方式: 一.altool 使用xcode中的 ...
- 20200117 .net 001
第一部分:面向对象 封装 继承(里氏转换) 多态第二部分:值类型.引用类型.字符串操作第三部分:集合文件操作第四部分:正则表达式第五部分:XML操作第六部分:委托.事件第七部分:反射. 1.变量的命名 ...
- 7.python虚拟环境详解
1.为什么创建虚拟环境? 和其他大多数现代编程语言一样,Python对包和模块的下载.存储以及管理有其自己的一套方法,Python的包一般都存在几个特定的地方,大部分系统包会存在sys.prefix指 ...
- Null项目参与排序
1.item1升序,item2升序,item3(存在NULL项目,NULL项目排在后面)升序 Collections.sort(list, Comparator.comparing(Bean::g ...
- vue-cli-service 报错
错误内容: vue-cli-service serve /bin/sh: vue-cli-service: command not found error Command failed with ex ...