
最短路径
文章平均质量分 72
弱菜zc
打完这场就回老家结婚!
展开
-
poj1062 昂贵的聘礼 dijkstra
N件物品分别有自己的价值及地位,有些可以被另一件及一个优惠价来替换,选择出的任意两件之间的地位差不超过m,求第一件的最低价;最开始想用dfs,无情的爆栈了;强行构图,以每件的价值为点,替换的优惠价为边。遍历每一件物品,把当前物品作为的最低地位(关键),以此选择出符合的点和边,用dijkstra,选出当前情况下第一件物品的最低价,最终比较出所有情况下第一件物品的最低价;#原创 2016-01-18 20:40:57 · 783 阅读 · 0 评论 -
poj 1847 Tram dijkstra
题意:电车从路口A要去路口B,在路口处可以选择通往默认的下一个路口,或者选择手动调节通往其余的几个路口,求电车的最少调节次数;简单的dijkstra。每个路口为节点,调节次数为边,默认的下一个路口边的值为0,其余可选的路口边的值为1,计算最短路径即可;#include #include#include#include#define N 110#define INF原创 2016-01-19 09:32:25 · 664 阅读 · 0 评论 -
hdu 3339 In Action 最短路spfa+背包
题目链接题意:给出n个点及每个点的电力值,给出m条路。选取若干个点,在保证其电力值之和大于总电力值的一半的情况下求其最短路径和。先求出初始点到每个点的最短路径,然后用背包的思想选取若干个点,使距离和最小。注意每个坦克只能到一个点。#include #include#include#include#include#define N 110#define M 11000#de原创 2016-04-04 19:11:41 · 1276 阅读 · 0 评论 -
hdu 2807 The Shortest Path 优化矩阵运算+floyd
题目链接题意:给出n个城市,每个城市为一个m阶矩阵。若存在矩阵B使矩阵A*B==C,那么城市A到C有一条路径为1的路。求两个城市之间的最短路。这题貌似一般的暴力过不了,需要用到矩阵乘法的优化。由于这题的数据量很小,判断出两个城市之间的路径后用Floyd就可以轻松求解。矩阵相乘优化算法实现讲解:传送门。这题要注意A,B,C之间都不相等,否则wa。#include #includ原创 2016-04-05 22:02:01 · 847 阅读 · 0 评论 -
Floyd、Dijkstra、Bellman-Ford、SPFA的比较
几个最短路径算法的比较:Floyd 求多源、无负权边的最短路。用矩阵记录图。时效性较差,时间复杂度O(V^3)。 Floyd-Warshall算法(Floyd-Warshall algorithm)是解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权的最短路径问题。Floyd-Warshall算法的时间复杂度为O(N^3),空间复杂度为O(N^2)。转载 2016-04-06 16:39:08 · 1839 阅读 · 0 评论 -
hdu 1595 find the longest of the shortest 最短路dijkstra+枚举
题目链接题意:给出n个点,m条边,求去除任意一条边的最长最短路。这题先用求一次最短路,记录下路径。如果去除的边不在路径上,那么最短路不变。所以我们只要考虑去除最短路上的边的情况。枚举最短路上的边删除,求最短路,注意要还原边。这题用spfa的邻接矩阵形式怎么也过不了,一直TLE。代码不变,换成dijkstra之后就能过了。不知道是不是稠密图的原因,spfa在这种情况下没有dijkstra原创 2016-04-06 16:04:32 · 962 阅读 · 0 评论 -
hdu 3986 Harry Potter and the Final Battle 最短路spfa+枚举
题目链接题意:给出n个点,m条边,且有重边。求除去任意一条边的最长最短路。由于有重边的情况,所以用邻接表来存储。注意标记毁坏的边时,正反双向都要标记。#include #include#include#include#include#define N 1100#define INF 0x7ffffff#define M 110000using namespace st原创 2016-04-06 20:38:52 · 823 阅读 · 0 评论 -
hdu 1599 find the mincost route 求最小环floyd
题目链接题意:给出n个点,至少包含三个节点的最小环。最小环的算法如下:Floyd 的 改进写法可以解决最小环问题,时间复杂度依然是 O(n^3),储存结构也是邻接矩阵 int mincircle = infinity;Dist = Graph;for(int k=0;k //新增部分: for(int i=0;i for原创 2016-04-07 20:16:54 · 864 阅读 · 0 评论 -
hdu 1839 Delay Constrained Maximum Capacity Path 二分下限+最短路spfa
题目链接题意:给出n个点和m条边,给出每条路的容量和时间。路径的容量为路径上边的容量的最小值。求满足总时间小于T的情况下的最大路径容量。用二分枚举路径的容量下限,只取容量大于枚举值的边求最短路。若此情况下的最短路小于T,那么更新答案,并提高容量下限。否则减小容量下限。#include #include#include#include#include#define N 1100原创 2016-04-07 21:28:08 · 587 阅读 · 0 评论 -
最短路&差分约束题集
最短路【HDU】1548 A strange lift基础最短路(或bfs)★2544 最短路 基础最短路★3790 最短路径问题基础最短路★2066 一个人的旅行基础最短路(多源多汇,可以建立超级源点和终点)★2112 HDU Today基础最短路★1874 畅通工程续基础最短路★1217 Arbitr转载 2016-04-04 08:34:39 · 867 阅读 · 0 评论 -
hdu 3631 Shortest Path 最短路径+插点法+floyd
题目链接题意:给出n个点,m条边,q个操作。对两个点的路径不得经过未标记的点。操作可以标记点或者询问两个点之间的距离,若操作非法则返回指定语句,否则执行操作。作为中间点,一个点一个点插入,理解Floyd的过程即可。#include #include#include#include#define N 330#define INF 0x7ffffffusing namespa原创 2016-04-29 20:52:34 · 938 阅读 · 0 评论 -
dijkstra模板
#include#include#include#include#include#includeusing namespace std;const int maxn=30000+5; struct Edge{ int from,to,weight; Edge(int from,int to,int weight):from(from),to(to),weight(weight)转载 2017-06-15 19:43:36 · 420 阅读 · 0 评论 -
hdu 4114 Disney's FastPass 状压dp+floyd
Problem DescriptionDisney's FastPass is a virtual queuing system created by the Walt Disney Company. First introduced in 1999 (thugh the idea of a ride reservation system was first introduced in原创 2017-07-12 09:41:04 · 701 阅读 · 0 评论 -
2017计蒜客复赛
复赛拿衣服,,, B. Windows 画图在 Windows 的“画图”工具里,可以绘制各种各样的图案。可以把画图当做一个标准的二维平面,在其上先后绘制了 nn 条颜色互不相同的线段。按绘制的时间顺序,从先到后把线段依次编号为 11 到 nn。第 ii 条线段的两个端点分别为 (xa_i,ya_i)(xai,yai) 和 (xb_i,yb_i)(xbi原创 2017-06-15 19:32:32 · 622 阅读 · 0 评论 -
【多校训练】hdu 6181 Two Paths 次短路径 Dijkstra
Problem DescriptionYou are given a undirected graph with n nodes (numbered from 1 to n) and m edges. Alice and Bob are now trying to play a game. Both of them will take different route from 1 to原创 2017-08-24 21:01:11 · 693 阅读 · 0 评论 -
【多校训练】hdu 6071 Lazy Running 最短路径 spfa
Problem DescriptionIn HDU, you have to run along the campus for 24 times, or you will fail in PE. According to the rule, you must keep your speed, and your running distance should not be less than原创 2017-08-25 19:26:48 · 468 阅读 · 0 评论 -
【多校训练】hdu 6166 Senior Pan 最短路径 Dijkstra
Problem DescriptionSenior Pan fails in his discrete math exam again. So he asks Master ZKC to give him graph theory problems everyday.The task is simple : ZKC will give Pan a directed graph ever原创 2017-08-23 21:16:56 · 579 阅读 · 0 评论 -
【2017新疆网络赛】H Skiing 最短路径spfa 模版
In this winter holiday, Bob has a plan for skiing at the mountain resort.This ski resort has MM different ski paths and NN different flags situated at those turning points.The ii-th path fro原创 2017-09-15 20:38:40 · 665 阅读 · 0 评论 -
poj3159 Candies 差分约束+spfa+模拟stack
题意:小朋友分糖,满足所有人要求下使得差距最大,输出最大差距;//²î·ÖÔ¼Êø spfa+Ä£Äâstack#include #include#include#include#include#define N 33000#define E 155000#define INF 0x3f3f3f3fusing namespace std;struct node{原创 2016-01-16 10:56:18 · 693 阅读 · 0 评论 -
hdu 2923 Einbahnstrasse 最短路spfa+map容器
题意:从初始点到多个点的来回最短路径总和。这题输入的时候比较麻烦,注意用map容器存储各点。注意一个目标点可能出现多次。#include #include#include#include#include#include#define N 110#define INF 0x7ffffff#define M 1100using namespace std;int n,t,原创 2016-04-02 17:08:29 · 780 阅读 · 0 评论 -
LightOJ 1074 Extended Traffic spfa+邻接表
题意:有n个点,m条有向边,每条边的权值等于(弧头的权值-弧尾的权值)的三次方,求第一个点到给定点的最短路径;用dijkstra做了一遍,WA,再读一遍题发现边的权值可以为负,可能会产生负环,把负环上的所有点还有路径经过负环的点都标记,此处用一个dfs;用spfa+邻接表做了一遍,期间犯了很多小错误,改了很久,RE了很多次终于过了,还是太不仔细了;#includ原创 2016-01-19 18:35:16 · 807 阅读 · 0 评论 -
hdu 4725 The Shortest Path in Nya Graph //spfa
题意:一张无向图,有个n点,每个点属于一层,每层之间的距离为c,另有m条边连接其中的一些点,求第一个点到第n个点的最短距离;这题实在憋了很久,由于n和m都比较大,一开始就想到了spfa,但没考虑空层的情况,只用了n个点,每两个邻近点都用c的边连起来了,wa;后改成2*n个点,前n个点就为题中的n个点,连接m条边。后n个点代表n层,若相邻两层都含有点,则用c的边连起来。每个点原创 2016-01-22 19:02:46 · 599 阅读 · 0 评论 -
hdu 1548 A strange lift 最短路 spfa模板
题意:一个电梯每层楼可以上ki层,或下ki层,若到达的层合法。求电梯从A层到B层的最少移动次数,若不能到达输出-1。简单最短路径,每层与其能到的层连有向边,权值为1。建图后spfa模板即可。#include #include#include#include#define INF 0x7ffffff#define N 220using namespace std;int a[原创 2016-03-29 21:41:03 · 695 阅读 · 0 评论 -
hdu 2544 最短路 spfa模板题
题意:给出m条边,求路口1到n的最短路。直接上模板。#include #include#include#include#define INF 0x7ffffff#define N 110using namespace std;int d[N],v[N],q[N],n,m,mp[N][N];int spfa(int s,int t){ for(int i=1;原创 2016-03-29 21:55:01 · 1157 阅读 · 0 评论 -
hdu 3790 最短路径问题 spfa
题意:给出距离和花费,求最短路径,若有多个最短路径,求花费最小的最短路径。先考虑距离,在距离的基础上考虑花费。注意有重边。原来用模拟栈,一直TLE,改成队列之后就好了。#include #include#include#include#include#define N 1100#define INF 0x7ffffffusing namespace std;int d[N原创 2016-03-30 09:06:10 · 940 阅读 · 0 评论 -
hdu 2066 一个人的旅行 最短路spfa
题意:从S个点出发到D个点的最短路。建一个超级源点与S个点相连,距离为0,建一个超级汇点与D个点相连,距离为0。然后计算最短路。#include #include#include#include#include#define N 1100#define INF 0x7ffffffusing namespace std;int v[N],d[N],mp[N][N],n,s[原创 2016-03-30 15:32:50 · 830 阅读 · 0 评论 -
hdu 2112 HDU Today 最短路spfa+容器map
题意:给出m条路,求给出的两个站的最短路。站名为字符串。这题题目不难但有几个注意点。一是注意map的使用,要记得清容器。这题有重边,注意重边的处理。注意站的数量最多只有150,路的数量可达到10000。#include #include#include#include#include#include#define N 170#define INF 0x7ffffffusin原创 2016-03-30 19:56:09 · 1111 阅读 · 0 评论 -
hdu 1874 畅通工程续 最短路spfa
题意:求s到t的最短路。模板题。#include #include#include#include#include#define N 220#define INF 0x7ffffffusing namespace std;int d[N],v[N],mp[N][N],m,n;int spfa(int s,int t){ for(int i=0;i<n;i+原创 2016-03-30 20:09:21 · 1042 阅读 · 0 评论 -
hdu 1217 Arbitrage 最短路 floyd+map容器
题意:给出n种货币,m对货币之间的汇率,判断能不能经过兑换来套利。这题的数据比较小,n最大只有30,所以可以用floyd暴力求解。注意map容器的使用。#include #include#include#include#include#includeusing namespace std;int n;double d[55][55];void floyd(){原创 2016-03-30 20:49:06 · 701 阅读 · 0 评论 -
Hdu 3416 Marriage Match IV 最大流sap+最短路径spfa
题意:n个点之间有m条有向边,求从源点s到汇点t的最短路径有多少条,最短路径之间不能共用边。利用前几天学的两个算法写了这题,感觉对两个算法还是不太熟练。这题的关键还是在于建图。先用最短路径算法分别计算s和t点到各点的最短距离,若一条边的弧尾到s的距离+弧头到t的距离+边的权值=s到t的最短路径,那这条边必定在最短路径上。选择这些边建立一张新图,边的权值都为1,然后用最大流算法sap计算条数原创 2016-03-07 21:38:17 · 884 阅读 · 0 评论 -
hdu 1245 Saving James Bond 最短路spfa+简单计算几何
题意:一个人从直径为15米的小岛上踩着鲨鱼跳离湖(好奇怪的题目),湖为100*100的正方形。人最大的跳跃距离为D,给出n个鲨鱼的坐标,求人跳跃的最小距离及在这情况下的跳跃次数。把岛看做点0,湖外看做点n+1,先计算出这n+2个点之间的距离,若超过D则设为不连通,然后再求最短路。用pre数组记录路径,可以求出跳跃次数。注意double及精度,注意如果n==0的情况。#include原创 2016-03-31 20:37:03 · 937 阅读 · 0 评论 -
Hdu4370 0 or 1 最短路径spfa
题意:一个n*n的01矩阵,满足以下条件1.X12+X13+...X1n=12.X1n+X2n+...Xn-1n=13.for each i (1ki (1ij (1另给出一个矩阵C,求∑Cij*Xij(1此题非常厉害,就算法来说不是很难,但很考想法。这题的精髓在于如何将条件抽象出来,并建图。三个条件分别告诉我们 点1的出度为1,点n的入度为1,每个点的入度等于原创 2016-03-08 20:51:48 · 1270 阅读 · 0 评论 -
hdu 1317 XYZZY bellman_ford判环+floyd
题意:玩家能量初始值有100,有100个房间,每个房间有一个大于-100小于100的能量值,每个房间与其他一些房间单向联通,玩家走到一个房间后能量加上房间的能量值,房间可以重复进入。若玩家的能量小于等于0,玩家输,若玩家到达终点,玩家赢。以房间为点,从房间到房间建有向边,边的权值为进入的房间的能量值。求初始点到各点的剩余最大能量,注意如果出现环,要判断这个环是否与终点联通。判断连通性需要用fl原创 2016-04-01 15:13:51 · 849 阅读 · 0 评论 -
poj 3169 Layout 差分约束+spfa
题意:n头奶牛按顺序站,可以重合,给出ml对奶牛之间的最大距离和md对奶牛之间的最小距离,求牛1和牛n之间的最大距离。典型的差分约束题,根据题意可得到三个条件。1.dj-di>=0 (j>i 以下略),可转换成 di-dj2.对ml对奶牛 dj-di3.对md对奶牛 dj-di>=D,可转换成 di-dj然后根据不等式做有向边,再用spfa求最短路径得解。然而这题反复提交了原创 2016-03-09 20:56:23 · 668 阅读 · 0 评论 -
hdu 1535 Invitation Cards 最短路spfa+逆向建图
题意:求起始点到各点的来回最短路径总和。建一张正向图,一张反向图,由于数据较大,用邻接表存储。#include #include#include#include#include#define N 1100000#define INF 0x7ffffffusing namespace std;struct node{ int next,to,w;}e[N][2原创 2016-04-02 09:34:29 · 701 阅读 · 0 评论 -
hdu 1546 Idiomatic Phrases Game 最短路spfa
题意:成语接龙。给出n个成语,一个成语查到下一个成语需要时间,前一个成语的最后一个字与后一个成语的第一个字相同就可以相接,求第一个成语接到最后一个成语的最短时间。判断每两个成语是否相连建图,求最短路径即可。#include #include#include#include#include#define N 1100#define INF 0x7ffffffusing nam原创 2016-04-02 10:31:09 · 755 阅读 · 0 评论 -
hdu 2680 Choose the best route 最短路spfa+超级源点
题意:从w个点出发到终点的最短距离。建一个超级源点,源点到w个点的距离为0。spfa模板题。#include #include#include#include#include#define N 1100#define INF 0x7ffffffusing namespace std;int d[N],v[N],mp[N][N],n;int spfa(int s,in原创 2016-04-02 12:15:33 · 1093 阅读 · 0 评论 -
bzoj 5047 空间传送装置 最短路
Description太空中一共有n座星球,它们之间可以通过空间传送装置进行转移。空间传送装置分为m种,第i种装置可以用4个参数a_i,b_i,c_i,d_i来描述。因为时空抖动的问题,在非整数时刻禁止使用空间传送装置。如果在整数s时刻使用装置,那么需要花费((a_i*s+b_i) mod c_i)+d_i单位时间才能完成传送。现在是s时刻,小Q位于1号星球,请写一个程序计算从原创 2017-10-18 15:02:16 · 697 阅读 · 0 评论