POJ-2502 Subway( 最短路 )】的更多相关文章

题意 : 给出二维平面上的两个点代表起点以及终点,接下来给出若干条地铁线路,除了在地铁线路上行进的速度为 40km/h 其余的点到点间都只能用过步行且其速度为 10km/h ,现问你从起点到终点的最短路是多少? 分析 : 这题建完图之后就是裸的最短路了,在建图的时候需要注意地铁的站点之间不能隔点建拥有地铁行进速度的边,也就是若地铁线路为 A->B->C 那么则不能建 A->C 这条速度为 40km/h 的边,因为地铁是在节点间行进的,如果要跨站点那么只能通过步行.图中边的权值为 (两点间…
POJ 2502 Subway / NBUT 1440 Subway / SCU 2186 Subway(图论,最短距离) Description You have just moved from a quiet Waterloo neighbourhood to a big, noisy city. Instead of getting to ride your bike to school every day, you now get to walk and take the subway.…
做这道题的动机就是想练习一下堆的应用,顺便补一下好久没看的图论算法. Dijkstra算法概述 //从0出发的单源最短路 dis[][] = {INF} ReadMap(dis); for i = 0 -> n - 1 d[i] = dis[0][i] while u = GetNearest(1 .. n - 1, !been[]) been[u] = 1 for_each edge from u d[edge.v] = min(d[edge.v], d[u] + dis[u][edge.v]…
Subway 题目链接: http://acm.hust.edu.cn/vjudge/contest/122685#problem/L Description You have just moved from a quiet Waterloo neighbourhood to a big, noisy city. Instead of getting to ride your bike to school every day, you now get to walk and take the s…
Subway Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6692   Accepted: 2177 Description You have just moved from a quiet Waterloo neighbourhood to a big, noisy city. Instead of getting to ride your bike to school every day, you now get…
Subway Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6689   Accepted: 2176 Description You have just moved from a quiet Waterloo neighbourhood to a big, noisy city. Instead of getting to ride your bike to school every day, you now get…
Subway Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4928   Accepted: 1602 Description You have just moved from a quiet Waterloo neighbourhood to a big, noisy city. Instead of getting to ride your bike to school every day, you now get…
Description You have just moved from a quiet Waterloo neighbourhood to a big, noisy city. Instead of getting to ride your bike to school every day, you now get to walk and take the subway. Because you don't want to be late for class, you want to know…
题目传送门 题意:列车上行驶40, 其余走路速度10.问从家到学校的最短时间 分析:关键是建图:相邻站点的速度是40,否则都可以走路10的速度.读入数据也很变态. #include <cstdio> #include <cmath> #include <algorithm> #include <cstring> #include <queue> using namespace std; const int N = 2e2 + 5; const i…
这个题的输入输出注意一下就好 #include<cstdio> #include<cstring> #include<queue> #include<cstdlib> #include<algorithm> #include<vector> #include<cmath> using namespace std; typedef long long LL; ; const int INF=0x3f3f3f3f; struc…
<题目链接> 题目大意: 某学生从家到学校之间有N(<200)条地铁,这个学生可以在任意站点上下车,无论何时都能赶上地铁,可以从一条地铁的任意一站到另一条地跌的任意一站,学生步行速度10km/h,地铁速度40km/h,给出学生家和学校以及每条地铁的站点坐标,求学生从家到学校的最短时间. 解题分析:题目的难点在于建图,由于输入的点最多200个,并且所有点之间的距离都要考虑,所以用邻接矩阵存图,注意速度的单位是km/h,而路程的单位是m,并且要将地铁站点之间与普通点之间的距离区分,存好图后,…
POJ 1161 Walls(最短路+枚举) 题目背景 题目大意:题意是说有 n个小镇,他们两两之间可能存在一些墙(不是每两个都有),把整个二维平面分成多个区域,当然这些区域都是一些封闭的多边形(除了最外面的一个),现在,如果某几个小镇上的人想要聚会,为选择哪个区域为聚会地点,可以使他们所有人总共需要穿过的墙数最小,题目上有说明,不在某个点上聚会(聚会点在某个多边形内部),行进过程中不穿过图中的点(也就是除出发点外的其他小镇). 输入第1行代表m(2<=M<=200)个区域 第2行代表n(3&…
L - Subway(最短路spfa) You have just moved from a quiet Waterloo neighbourhood to a big, noisy city. Instead of getting to ride your bike to school every day, you now get to walk and take the subway. Because you don't want to be late for class, you want…
题目链接: 题意:在一个城市里有许多地铁,现在你知道每条地铁的起点  终点与停站点的坐标,知道我们的起始坐标与终点坐标,问加上走路最快到达终点的时间是多少? 方法:求出任意两点的车速时间与步行时间,再算出最短路 #include<stdio.h> #include<cstring> #include<cstdlib> #include<algorithm> #include<math.h> #include<queue> using…
题意:给出地铁线  起点和 终点  坐地铁速度为v2  走路为v1 求起点到终点的最短距离  (答案需要四舍五入这里坑了好久) 拿给出的地铁站点 和起点终点建边即可  然后跑个迪杰斯特拉 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> using namespace std; ; ; int n; +; double dist[maxn]; double cost[m…
题目链接: http://poj.org/problem?id=2502 题目大意: 你刚从一个安静的小镇搬到一个吵闹的大城市,所以你不能再骑自行车去上学了,只能乘坐地铁或者步行去上学.因为你不想迟到,所以你想知道自己多长时间能到达学校,你步行的速度是 10km/h, 地铁的速度是40km/h, 假如你是幸运的,你刚到地铁就有一辆地铁行驶过来, 你马上就可以乘坐, 任意的一个地铁你可以乘坐多次,若果你愿意你可以换乘不同的地铁,所有的地铁都是两个方向的. 输入: 输入首先包含两个坐标,表示你家的坐…
Description You have just moved from a quiet Waterloo neighbourhood to a big, noisy city. Instead of getting to ride your bike to school every day, you now get to walk and take the subway. Because you don't want to be late for class, you want to know…
http://poj.org/problem?id=2502 同一条地铁线上的站点相邻点间按照v2建边,然后所有点之间按照v1更新建边,所有的边都是双向边,both directions. 然后直接跑dij就好了,防止因为重复的站点多建了同样的点,把上限开到了500,AC. 一个小bug是因为数组开了500,然后初始化时访问了500导致越界,,,把其他位置的地址更改了检查了半天,衰,以后还是多开几十好点. #include<iostream> #include<cstdio> #i…
题意:在一个城市里,分布着若干条地铁线路,每条地铁线路有若干个站点,所有地铁的速度均为40km/h.现在你知道了出发地和终点的坐标,以及这些地铁 线路每个站点的坐标,你的步行速度为10km/h,且你到了地铁的任意一个站之后就刚好有地铁出发.问你从出发点到终点最少需要多少时间. ////////////////////////////////////////////////////////////////////// 有很多站点,给的数据只是一条条线路,所以需要先预处理数据,增加任意两点人走需要的…
题意: 给出两个坐标,分别是小明家和小明学校的坐标. 给出多条地铁线,给出每站的坐标,已知地铁是双向的,每条线以-1 -1结尾. 给出地铁速度,步行速度. 地铁线可看成是顺次连接的线段. 求小明从家到学校用到的时间. 思路: 任何两点之间都可以连速度为步行的无向边,地铁相邻两站可以连速度为地铁速度的无向边. 之后进行SPFA: #include<stdio.h> #include<string.h> #include<math.h> #include<queue&…
#include<cstdio> #include<cmath> #include<cstring> #include<cstring> #include<iostream> #include<queue> using namespace std; ; const double INF=0x3f3f3f3f; int k,l; struct node { double x,y; int num; } s[N]; bool st[N];…
POJ subway 600K 0MS 题意:乘坐地铁从家到学校,地铁40km/h 步行10km/h , 已知各个站点的x,y坐标,输入的信息每个列次用-,-1隔开,要求花费的时间最少 解决方案:把家和学校各看成一个站点,求出相邻站点的权值(路程/速度),以站点数量建立map,保留两站之间的距离,然后dijsktra算法寻找两站点间最短路径 问题:结束条件EOF,sign初始值 #include<iostream> #include<cmath> #define MAX 10000…
题目链接:http://poj.org/problem?id=2502 Description You have just moved from a quiet Waterloo neighbourhood to a big, noisy city. Instead of getting to ride your bike to school every day, you now get to walk and take the subway. Because you don't want to…
http://poj.org/problem?id=3255 bessie 有时会去拜访她的朋友,但是她不想走最快回家的那条路,而是想走一条比最短的路长的次短路. 城镇由R条双向路组成,有N个路口.标号为1到N,问1号路口到N号路口的次短路长度是多少?次短路是 比最短路长度长的次短的路径.同一条边可以经过多次. 到某个顶点v的次短路要么帅到其他顶点u的最短路在加上u-v的边,要么是到u的次短路再加上u-v的边, 因此所需要求的就是到所有顶点的最短路和次短路,因此,对于每个顶点,我们记录的不仅仅是…
http://poj.org/problem?id=3463 Sightseeing Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 6420   Accepted: 2270 Description Tour operator Your Personal Holiday organises guided bus trips across the Benelux. Every day the bus moves from…
解决方案有许多美丽的地方.让我们跳回到到达终点跳回(例如有两点)....无论如何,这不是最短路,但它并不重要.算法能给出正确的结果 思考:而最短的路到同一点例程.spfa先正达恳求一次,求的最短路径的再次的相反,然后列举每个边缘<i,j>查找dist_zheng[i] + len<i,j> + dist_fan[j]的第二小值就可以! 注意不能用邻接矩阵,那样会MLE,应该用邻接表 /* poj 3255 3808K 266MS */ #include<cstdio>…
题目链接:http://poj.org/problem?id=2502 分析: 告诉一些地铁线路,从起点到终点,中途可以步行,可以坐地铁,找一条最短的路 主要是把图建立好,然后直接dijkstra或者floyd,因为速度不同,所以转化成求最短的时间 题目大致处理方法就是将每个地铁站点与相邻的站点用时先算出,然后再算各个点之间步行耗时,最后一个dijkstra.  *:scanf的返回值由后面的参数决定scanf("%d%d",&a,&b); 如果a和b都被成功读入,那么…
http://poj.org/problem?id=1724 题意:最短路的模板,不过每条边加上一个费用,要求总费用不超过k 题解:不能用dijkstra ,直接暴力,dfs维护len和cost. 普通的剪枝:如果当前的cost大于k直接跳出,如果当前的len大于minlen(目前的最优解),跳出. 另一个剪枝:维护花费一定费用 到达某个点 的最短路minL[v][cost],如果当前的len大于L,则跳出. ac代码: #define _CRT_SECURE_NO_WARNINGS #incl…
Layout Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11612   Accepted: 5550 Description Like everyone else, cows like to stand close to their friends when queuing for feed. FJ has N (2 <= N <= 1,000) cows numbered 1..N standing along…
题目:http://poj.org/problem?id=3463 当然要给一个点记最短路和次短路的长度和方案. 但往优先队列里放的结构体和vis竟然也要区分0/1,就像把一个点拆成两个点了一样. 不要区分k的fx. #include<iostream> #include<cstdio> #include<cstring> #include<queue> using namespace std; ,M=; ],f[N][],st,en; ]; struct…