poj1847 最短路
//Accepted 188 KB 32 ms
//spfa 最短路
//每个intersection到第一个连接点是不要switch的
//到其他的intersection要switch一次
#include <cstdio>
#include <cstring>
#include <iostream>
#include <queue>
#include <cmath>
#include <algorithm>
using namespace std;
/**
* This is a documentation comment block
* 如果有一天你坚持不下去了,就想想你为什么走到这儿!
* @authr songt
*/
;
;
int a[imax_n][imax_n];
bool vis[imax_n];
int dis[imax_n];
int n;
bool relax(int u,int v,int c)
{
if (dis[v]>dis[u]+c)
{
dis[v]=dis[u]+c;
return true;
}
return false;
}
queue<int > Q;
void spfa(int src)
{
while (!Q.empty()) Q.pop();
memset(vis,,sizeof(vis));
;i<=n;i++)
dis[i]=inf;
dis[src]=;
Q.push(src);
vis[src]=true;
while (!Q.empty())
{
int pre=Q.front();
Q.pop();
vis[pre]=false;
;i<=n;i++)
if (relax(pre,i,a[pre][i]) && !vis[i])
{
Q.push(i);
vis[i]=true;
}
}
}
int start,end;
int main()
{
int x,y,cnt;
while (scanf("%d%d%d",&n,&start,&end)!=EOF)
{
;i<=n;i++)
{
;j<=n;j++)
a[i][j]=inf;
a[i][i]=;
}
;i<=n;i++)
{
scanf("%d",&cnt);
)
{
scanf("%d",&x);
a[i][x]=;
cnt--;
}
;j<cnt;j++)
{
scanf("%d",&x);
a[i][x]=;
}
}
//printf("gg\n");
spfa(start);
;
if (dis[end]==inf) printf("-1\n");
else
printf("%d\n",dis[end]);
}
;
}
poj1847 最短路的更多相关文章
- N - Tram - poj1847(简单最短路)
题意:火车从一点开到另一点,轨道上有很多岔路口,每个路口都有好几个方向(火车能够选任意一个方向开),但是 默认的是 第一个指向的方向,所以如果要选择别的方向的话得 进行一次切换操作 ,给定一个起点一个 ...
- POJ1847:Tram(最短路)
Tram Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 20116 Accepted: 7491 题目链接:http:/ ...
- POJ-1847 Tram( 最短路 )
题目链接:http://poj.org/problem?id=1847 Description Tram network in Zagreb consists of a number of inter ...
- poj1847 Tram 最短路Dijkstra
题目链接:http://poj.org/problem?id=1847 Dijkstra算法的模版应用 题意:给你N个点和起点终点,点与点有铁路,接下来的N行分别为点i的情况 第一个数字表示与该点连通 ...
- poj1847 Tram(最短路dijkstra)
描述: Tram network in Zagreb consists of a number of intersections and rails connecting some of them. ...
- poj1847 Tram(Dijkstra || Floyd || SPFA)
题目链接 http://poj.org/problem?id=1847 题意 有n个车站,编号1~n,每个车站有k个出口,车站的出口默认是k个出口中的第一个,如果不想从默认出口出站,则需要手动选择出站 ...
- bzoj1001--最大流转最短路
http://www.lydsy.com/JudgeOnline/problem.php?id=1001 思路:这应该算是经典的最大流求最小割吧.不过题目中n,m<=1000,用最大流会TLE, ...
- 【USACO 3.2】Sweet Butter(最短路)
题意 一个联通图里给定若干个点,求他们到某点距离之和的最小值. 题解 枚举到的某点,然后优先队列优化的dijkstra求最短路,把给定的点到其的最短路加起来,更新最小值.复杂度是\(O(NElogE) ...
- Sicily 1031: Campus (最短路)
这是一道典型的最短路问题,直接用Dijkstra算法便可求解,主要是需要考虑输入的点是不是在已给出的地图中,具体看代码 #include<bits/stdc++.h> #define MA ...
随机推荐
- Java 文本文件 读写
Use File/FileInputStream/FileOutputStream. public void testWithFIS() throws IOException{ File file=n ...
- css学习记录
1 !important 表示此属性需要优先考虑: <head> <title>Page Title</title> <style type=&q ...
- Sprint three
登录界面: 首页: 点餐界面: 查看购物车: 结账: 经历了一个月的时间,我们小组做出了我们的餐厅点餐系统APP.对于这次团队合作,我们的小组成员分工合作做出了我们的餐厅点餐系统APP,通过这次的项目 ...
- 关于layui
之前用layer用了很长时间,感觉很好用,最近看到了layui的发布很想尝试尝试. 加入了挺多的功能,比如编辑器,上传,form表单等等.
- jmeter ForEach Controller学习
ForEach Controller: foreach一般和用户定义变量一起使用,在用户定义变量中定义3个变量 foreach中输出变量名称(vname),这种方式可以生成一个vname的变量,点击运 ...
- Ubuntu Server 安装桌面untiy
1.安装 sudo apt-get install ubuntu-desktop sudo apt-get install unity sudo apt-get install unity-commo ...
- Codeforces Round #373 (Div. 2) E. Sasha and Array
题目链接 分析:矩阵快速幂+线段树 斐波那契数列的计算是矩阵快速幂的模板题,这个也没什么很多好解释的,学了矩阵快速幂应该就知道的东西= =这道题比较巧妙的在于需要用线段树来维护矩阵,达到快速查询区间斐 ...
- 一些css知识
两个"::"和一个":"在css3中主要用来区分伪类和伪元素. 1.设置 placeholder属性: // firefox input::-moz-place ...
- wampServer安装注意
http://www.glbwl.com/wampServer-403-forbidden.html http://jingyan.baidu.com/article/e75aca8578147d14 ...
- javascript温故知新
1 javascript作用域 初学javascript的时候,变量的作用域就感觉有些麻烦,他不像C#或java那样清晰明了,貌似处处都在作用域内,但有时会处处都是空. javascript中,变量的 ...