最短路
chen_minghui
这个作者很懒,什么都没留下…
展开
-
FZU 2271 X Floyd
题目链接http://acm.fzu.edu.cn/problem.php?pid=2271题意给定一有重边的无向图,定义两点间的距离为它们的最短路距离,问最多可以删除几条边使图中点间距离不变。思路首先输入时即处理掉重边,然后Floyd处理,如果u与v是直接相连的,被中间节点k松弛,或者能够使之与u->v的距离相等,那么u->v这条边是多余的可以标记删除。具体操作看代码#include<cstdio原创 2017-10-03 22:15:19 · 307 阅读 · 0 评论 -
HDU 1598 find the most comfortable road 二分+bfs or 并查集枚举
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1598题意中文题:找到一条s到t的路,其中边的差值最小,输出这个差值,如果不存在输出-1。思路1.枚举差值,先将边保存起来,获得最大最小边权差值(二分的上界下界)。枚举一个差值,将符合差值的边加入图中,跑bfs,看从s是否能够到达t,我这儿输出-1的处理是给上界是加了个1,如果最后答案出界了,说明不存在s到原创 2017-08-31 16:05:08 · 221 阅读 · 0 评论 -
HDU 3986 Harry Potter and the Final Battle 删掉任意一条边的最长最短路(有重边)
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=3986题意哈利波特为了能够尽快世界和平,决定去攻打伏地魔,从他所在的位置,哈利波特走到伏地魔所在位置总是会选择最短的路走。伏地魔魔力强大,他会选择一条路破坏掉,输出破坏掉一条路后,最大的最短路,如果破坏前后导致哈利波特不能到达伏地魔那儿输出-1思路在样例中看到有重边,就不能像HDU1595那样用邻接矩阵存了原创 2017-09-08 19:22:58 · 392 阅读 · 0 评论 -
HDU 1595 find the longest of the shortest 删掉任意一条边的最长最短路
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1595题意某个男的背着她女朋友找小三,她女朋友决定去男的所在城市报复。已知路上存在一条正在修复的路,她女朋友一定会走最短的路去找他,且不会走在修复的路。现在这个男的想评估一下这条最短路最大可以是多少,以腾出更多的时间。。思路1.这题图可以是完全图 2.删除的边应该在最短路径上删除,如果删除不在最短路上的边原创 2017-09-08 16:44:46 · 423 阅读 · 0 评论 -
HDU 2807 The Shortest Path 矩阵运算+最短路
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2807题意给定n个m*m的矩阵,对于A矩阵,C矩阵,如果存在B矩阵满足A*B = C,那么图中A->B有条权值为1的边。求最短路思路蛮简单的一题居然给我写T了。建图直接按照题意描述建,跑Floyd获取最短路。#include<cstdio>#include<queue>#include<iostream原创 2017-09-08 15:15:45 · 253 阅读 · 0 评论 -
POJ 3768 Shopping dfs+最短路
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=3768题意某人搬了新房,要去附近的超市购买东西,不幸的是:他需要的东西在几个不同的超市,所以他需要走几个超市,已知他的房子在0号位置,超市有S个,要求从0到达所有超市并且返回的距离最短。思路一开始看到在题集上看到解法是“最短路+dfs”时,我是拒绝的。写完后抱着必T的心态,准备去网上看题解学习新姿势,结果交原创 2017-08-29 19:53:57 · 300 阅读 · 0 评论 -
HDU 2680 Choose the best route多源点最短路
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2680题意多源点最短路。。。思路源点有多个,将所有源点与超级源点连一条距离为0的边,跑最短路算法就行了#include<cstdio>#include<queue>#include<iostream>#include<vector>#include<map>#include<cstring>#i原创 2017-09-06 22:08:56 · 226 阅读 · 0 评论 -
HDU 3339 In Action 最短路+01背包
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=3339题意从基地(0点)开出数量足够多的坦克去摧毁发电站,每个发电站有个能量值,要求摧毁的发电站的能量总和要超过所有发电站能量值总和的一半,最所有坦克运行的最短路径。思路又是看错题意,要求能量值超过一半(╥╯^╰╥)。求出0点到每个点的最短路,然后以所有发电站能量值总和为背包容量,到每个点的最短距为价值,每原创 2017-09-06 22:06:20 · 177 阅读 · 0 评论 -
HDU 3631 Shortest Path Floyd
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=3631题意给定一含n个结点的有向带权图,编号0~n-1,每个点都有一个标记,初始时每个点都没被标记。然后给q个询问,每个询问的格式有两种。 1. 0 x:代表标记x结点。 2. 1 x y 代表求x到y的最短路,最短路只能走被标记的点。思路主要是求最短路,其他的注意细节。每个点被标记,那么就用这个点原创 2017-09-09 11:38:29 · 205 阅读 · 0 评论 -
HDU3832 Earth Hour 斯坦纳树(三点连通)
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=3832题意背景:为了响应停电一小时活动,某校决定关掉除了图书馆,教室,学生宿舍(编号为1,2,3)三处其他所有的灯,且要求这三处是相连的。每处的灯有一个圆形的照亮范围,如果两处的灯的照亮范围存在相交区域,那么称之为相连的。学校想在符合上述限制下,尽可能的关闭多的灯,求出这个数量,如果这3处就不相连,那么输出原创 2017-09-09 17:02:10 · 544 阅读 · 0 评论 -
POJ 2433 Travel 最短路树?
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2433题意给n个点的图,边权均为1,用sum表示图中任意一对结点间最短距离之和。([u->v]与[v->u]算不同的结点对).从输入的边中,一条一条的删除边。求每次删除后的sum值,如果某两个点间不连通,那么输出-1思路每次删除后用floyd妥妥的T了。看了网上的题解才知道还有最短路树这东西。对每个点都跑一原创 2017-08-31 20:58:15 · 260 阅读 · 0 评论 -
HDU 1839 Delay Constrained 带限制最短路:二分下限
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=3631题意金矿位置在1号位置,加工厂在n号位置,从1到n的路中有一些中转结点,任意两个点最多只有一条路,每条路有两个属性:容量和时间,一条从1~n的路径的容量由路径中最小边容量确定,即路径的容量等于这条路径中边的容量最小的那条边。通过路径时间为路径中所有边时间之和。选择一条路线从金矿中提取金矿到工厂的时间不原创 2017-09-09 11:32:07 · 289 阅读 · 0 评论 -
51nod 1443 路径和树
题目链接https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1443思路先求一次最短路,然后考虑最短路上的边作为树的边, 失了智,最大值爆int了。#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<vector>原创 2017-09-21 21:13:08 · 250 阅读 · 0 评论 -
HDU 2363 Cycling 二分+ 限制最短路
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2363题意某人要去考试,途中在路上遇到的点有一个海拔高度,每个点之间有个长度连接,求使1到n路中海拔高度最大与最小的点之差最小的前提下,使路径长度最小。#include<cstdio>#include<queue>#include<iostream>#include<cmath>#include<v原创 2017-09-11 22:16:41 · 255 阅读 · 0 评论 -
HDU 1385Minimum Transport Cost 最短路输出路径
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1385题意给定n个城镇,从s到t运货需要路费,路径中除了s和t之外,经过每个城镇还要额外收税。求s到t的最小花费,并输出字典序最小的路径思路一开始从s到t正向跑dj,发现倒着走反而才是字典序最小的,要输出从s->t的最短路且字典序最小,从t倒着走到s,每次拿编号最小的点去松弛其他点。因为s和t不计算税收,所原创 2017-09-09 21:12:21 · 216 阅读 · 0 评论 -
HDU 2962 Trucking 二分+最短路
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2962题意在一张地图中,一个运货车要从s运货到t,路中每条边有运输时间,有些边有运货限制(理解为路有路有承重限制),有些没有。给定运货车的最大运货量,求s到t能运货尽可能多的情况下,花费时间最少。思路二分枚举s->t的路中最小的h,将图中所有小于h的边都删去,跑最短路。#include<cstdio>#i原创 2017-09-10 22:10:23 · 247 阅读 · 0 评论 -
51nod 1444 破坏道路 最短路
题目链接https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1444思路因为边的权为1,所以可以BFS在O(n^2) 时间内求出任意两点间的最短距离, 那么d[s1][i]+d[i][j]+d[j][t1] <=Lim1 说明I->j 为符合条件的s1->t1的子路。 如果d[s1][i]+d[i][j]+d[j][t1]原创 2017-09-18 19:32:04 · 437 阅读 · 0 评论 -
HDU 1224 Free DIY Tour SPFA最长路
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1224题意从1走到n+1,保证只有一条最长路,且不会存在标号大的点指向标号小的点。输出从1到n+1的最长路径。思路反向建图,从n+1跑SPFA求最长路。输出即可。#include<cstdio>#include<queue>#include<iostream>#include<vector>#inc原创 2017-09-10 10:13:07 · 248 阅读 · 0 评论 -
HDU 1869 六度分离 floyd
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1869题意中文题思路两个人认识,在他们之间连一条权值为1的边,如果I,j之间连接着6个点,那么他们的最短路至少为7.所以只要出现最短路大于7的就是no#include<cstdio>#include<queue>#include<iostream>#include<vector>#include<m原创 2017-09-09 21:15:59 · 200 阅读 · 0 评论 -
HDU 2833 WuKong 求两条最短路间最多公共点数
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2833题意两个人从两个点出发(不一定是同一个点),到达两个点(不一定是同一个点),问他们的最短路间最多可以有几个公共点。思路dp[i][j] 代表I到j这条最短路中最多有几个点。#include<cstdio>#include<queue>#include<iostream>#include<vect原创 2017-09-14 19:27:02 · 265 阅读 · 0 评论 -
POJ 3660 Cow Contest floyd传递闭包
题目链接http://poj.org/problem?id=3660题意给定n头牛之间m条排名关系,判断有几头牛能与其他所有牛分出高下。思路floyd传递闭包,如果某个点的出度+入度=n-1.则这个点能够确定。#include<cstdio>#include<queue>#include<iostream>#include<vector>#include<map>#include<cstr原创 2017-08-28 10:51:42 · 241 阅读 · 0 评论 -
HDU 1546 Idiomatic Phrases Game 最短路
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1546题意给定n个成语,第一个源成语,第n个是目标成语,每个成语附带一个值,代表从当前成语找到下一个可接的成语所需要的时间,可以接龙的条件是上一个成语的末尾汉子等于下一个成语的首个汉字,一个汉字由四个十六进制的数字表示。思路我大概是题意读错了,一开始给每个汉字编号,每个成语首末汉字之间连一条边,权为成语附带原创 2017-09-05 22:13:11 · 435 阅读 · 0 评论 -
hdu 1625 Numbering Paths floyd变形
题意:给定一些带有编号点之间的连接关系,按照格式输出一个二维矩阵。矩阵中map[I][j]代表I到j有多少条路径,如果有无数条,则添上-1;floyd算法变形,动态规划思想。k代表将第k个点引入“集合”中.#include#include#define Max(a,b) a>b?a:busing namespace std;const int maxn =40;int map[m原创 2017-03-15 20:56:44 · 313 阅读 · 0 评论 -
uva 12661 funny car racing dijkstra变形
题意:在一场在比赛中,有n个结点,有m条连线,每一条边有属性a,b。a代表边的门打开时间,b代表门关闭的时间。周期循环。车字通过每条边需要时间,如果通过的时间小于门打开的时间,则不能通过,等待下一次开门。(如果在一个完整的周期中,通过的时间仍小于门打开的时间,则不能通过这条边).#include#include#include#includeusing namespace std;c原创 2017-03-24 08:25:49 · 466 阅读 · 0 评论 -
poj 1847 Tram dijktra
题意:题意难理解,3 2 12 2 32 3 12 1 2样例输入中,测试用例第一行包含3个数字N,A,B N代表结点个数,A代表起点,B代表终点,接下来有N行,每行第一个数十一个总数,如第I行第一个数为2,代表从结点i可以到达的结点数,接下来的第一个数2为默认方向,剩下的都下需要手动摇动开关才能走的方向。求从A到B最小的摇动次数,如果不能到达,输出-1#include#原创 2017-04-05 21:26:40 · 313 阅读 · 0 评论 -
uva 821 Page Hopping 最短路floyd
#include#includeusing namespace std;const int maxn = 110;const int INF = 1<<20;int d[maxn][maxn],n;void floyd(){ for(int k=1;k<=n;k++) for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(i!=j&原创 2017-04-13 19:25:56 · 343 阅读 · 0 评论 -
uva 1001 say cheese dijstra
题意:在一个奶酪中,有一些洞,一老鼠为了去追寻另外一只老鼠,决定从它所在位置走到另外一只老鼠的所在地,它每10s走1单位,在洞中可以瞬移,给定两只老鼠的坐标,以及洞的坐标和相应的半径。求最短路。思路:起点和终点视为没有半径为0的圆,另外起点和终点不走洞的话,当然直线距离,要考虑走洞的情况,每两个洞之间的最短距离最圆心距离减去两圆的半径,起点和终点视作半径为0的洞,给所有“洞”编号,距离用dou原创 2017-04-14 22:12:17 · 363 阅读 · 0 评论 -
uva 10801 Lift Hopping Dijkstra最短路
题意:在一个虚拟的摩天大楼里,有n个电梯,有最多不超过100层的楼层,编号0~99,并且没有楼梯,每个电梯有个速度,代表移动一层需要的时间,另外电梯指在特定的楼层停留,如果要换乘电梯,则这两个电梯必须有相同的停留位置,电梯的数量和位置多的位置,也就是换电梯不需要等待,但是有个换电梯的时间为60s。最从0层到k层最小可能时间思路:构图:n最多为5,楼层最多100层,那就扩展到500个,0~99代原创 2017-04-20 19:31:39 · 272 阅读 · 0 评论 -
uva 10058 Audiophobia floyd变形
题意:一个含有n个结点,m条边的无向图,每条边有一个噪音值,另有n次询问,对每次询问求出起点到终点这路径中最大噪音值最小的噪音值,,有点绕= =。如果没有无法达到,输出no path#include#includeconst int maxn = 101;const int INF = 1<<30;int d[maxn][maxn];int Max(int a,int b){re原创 2017-04-20 21:49:53 · 384 阅读 · 0 评论 -
HDU-2112 HDU Today 最短路
中文题:http://acm.hdu.edu.cn/showproblem.php?pid=2112思路:给地名编号,套dijstra,注意图是无向图。#include//无向图 #include#include#includeusing namespace std;const int INF = 1<<30;const int maxn = 300;int d[maxn],原创 2017-07-18 22:39:02 · 217 阅读 · 0 评论 -
HDU 3790 最短路径问题 双重权值
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3790#includeusing namespace std;const int maxn = 1e4+10;const int INF = 1<<30;int d[maxn],vis[maxn],c[maxn];struct node{ int d;//距离 int x;//点的编号原创 2017-07-18 22:44:57 · 295 阅读 · 0 评论 -
HDU2066 一个人的旅行(Dijkstra)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2066思路:以0为起点,到草儿周围的车站建边,距离为0,其他的正常建立双向边,跑dijstra选出最小距离。#include#include#include#includeusing namespace std;const int maxn = 20000;const int INF=1原创 2017-07-19 12:55:57 · 258 阅读 · 0 评论 -
HDU 1535 Invitation Cards SPFA
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1535题意给定单向图,从1点走到其他任意一点,再返回n,直到所有点走完,求最短路。思路图是单向的,从1点跑最短路可以得到1到其他点的最短距离。反向建图从1点跑最短路可以得到其他点到1点的最短距离,边要先保存起来,正向跑完后销毁,建反向再跑一次。同时建正向和反向超内存。。#include<cstdio>#i原创 2017-09-05 22:06:48 · 234 阅读 · 0 评论 -
hdu 1142 A Walk Through the Forest 最短路+记忆化搜索
题意:每天下班后,某人都要从他的办公室,深林的一端,结点编号为1,走到深林的另一端,结点编号为2,为了放松心情,并且能尽快到家,他想知道有多少路满足条件的路能够到家。条件:当前在A点,与A相连的B点如果满足,A到2的最短距离大于B到2的最短距离,那么A可以从B走,否则不能走。按照这样的规则走到终点,算一条路径,一开始也以为是求最短路的条数= =思路:dijstra求最短路,然后记忆化搜索原创 2017-04-17 20:50:57 · 340 阅读 · 0 评论 -
poj3013 Big Christmas Tree dijkstra
题目链接:http://poj.org/problem?id=3013 题意:给定一含n个结点的图,要求构建一颗以1为根结点的树,要将某条边加入树中,那么所需要的价钱为所有子孙结点权重之和*这条边的基础花费,选入一些适当的边,使得所有点都在树中,且价钱最小。 思路:树构成之后,会发现所有子孙结点都能通过一系列的边到达根结点1,而这些边都与子孙结点的权重相乘贡献给最终的答案中。所以要使答案小,结点原创 2017-08-14 16:52:40 · 231 阅读 · 0 评论 -
poj Remmarguts' Date A*+ spfa
题目链接:http://poj.org/problem?id=2449 题意:求s到t的第k短路。 以前听说过启发式搜索A*算法,现在是第一次自己写。还顺便了解了spfa与dijstra的区别。 dijstra算法用于边权为正的图中。每次松弛操作都是由已经确定了最短路的点到一个不确定的点。比如从起点开始,起初集合中只有源点s,起点s到起点的最短路0是已经确定了的。然后向与其直接相连且最短路不确原创 2017-08-12 21:38:03 · 378 阅读 · 0 评论 -
poj 3635 Full Tank? 广搜?
题目链接:http://poj.org/problem?id=3635题意:某人要开车出去旅行,他发现每个地方的油价不相同,为了节省路费,找到一个适当的加油方式使得从s到t的价钱最小。一单位油可以走一单位距离。思路:每个点扩展出c个状态d[u][o],代表在第u个城市,拥有o单位的油所需的最小价钱。那么在每个点的每个状态,假设为u(与之相连的是v,之间距离为w),有两种选择,花费w单位油走到v点,或原创 2017-08-17 17:57:53 · 393 阅读 · 0 评论 -
POJ 3463 Sightseeing dijkstra
题目链接:http://poj.org/problem?id=3463 题意:给定一个图,找最短路和比最短路多1的路的条数。 思路1:将次短路也当作一种“最短”的状态,去扩展状态。这样每个点就有两种属性,次短和最短。记录次短路条数和记录最短路条数类似。 /* 我们知道Dijkstra就是不断地用已经确定最短路的节点(黑色)去松弛未确定的点(白色), 用数学归纳法很容易证明这是正确原创 2017-08-17 17:44:12 · 184 阅读 · 0 评论 -
E - 简单的图论问题? HNCPC 2015年湖南省省赛
题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1780 思路:前者可以直接用dijstra算法求出,后者是一个简单的变形。可以将每个点“拆分“成4个不同方向的点,然后用dijstra求出。#include<cstdio>#include<queue>#include<iostream>#include<vector>#inc原创 2017-08-08 22:38:40 · 429 阅读 · 0 评论 -
hdu 1599 find the mincost route Floyd 无向图求最小环
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1599//题意:在图中找到一条这样的路径v1->v2->..->vk->v1 这里的k>2 并且路径长度是最小的。 #include#include#includeusing namespace std;const int maxn = 110;const int INF=1<<30;in原创 2017-07-19 14:53:19 · 317 阅读 · 0 评论