图论-最短路&K短路
文章平均质量分 80
FDU_Nan
去做一个会思考,善于思考的人儿。
展开
-
hdu 2992 Hotel booking(spfa+floyd+map)
http://acm.hdu.edu.cn/showproblem.php?pid=2992题意:运输公司要从初始城市运送货物到目的城市,共有n个城市,编号是1~n。出发点和目的地分别是1和n号城市。在这些城市中有h个免费客栈,司机一天最多能走10小时,晚上选择一个客栈休息。给出h个客栈所在的城市以及m个城市的连接情况,问最少需要的客栈数。思路:把h个客栈看做点,编号为1~h,起点原创 2014-03-30 09:17:05 · 1310 阅读 · 0 评论 -
hdu 3832 Earth Hour
http://acm.hdu.edu.cn/showproblem.php?pid=3832大致题意:给出n个灯的位置以及每个灯照亮的范围。问最后至多可以熄灭多少盏灯使得编号为1,2,3的点连通。思路:若任意两灯的照亮范围相交,那么两点之间建边,权值为1。最后枚举一点使它到1,2,3点的距离最近,那么该距离之和+1(还有该点本身)代表必须不能熄灭的灯,那么熄灭的灯数就求出来原创 2014-05-18 18:51:39 · 1023 阅读 · 0 评论 -
hdu 1595 find the longest of the shortest(dijstra + 枚举)
http://acm.hdu.edu.cn/showproblem.php?pid=1595大致题意:给一个图,让输出从中删除任意一条边后所得最短路径中最长的。。思路:直接枚举每条边想必是不行的。其实有些边是不需要枚举的,因为删除它们并不影响起点到终点的最短路。起作用的边都是未删边前的最短路径上的边,删除它们最短距离肯定增大,只需在这些最短距离中求最大的即可。记录最短路原创 2014-04-28 02:15:55 · 1042 阅读 · 0 评论 -
hdu 2833 WuKong(最短路径+记忆化搜索)
http://acm.hdu.edu.cn/showproblem.php?pid=2833大致题意:给定一个无向图,以及悟空和师傅起点与终点,求它们分别从起点到终点的最短路径中经过相同的点的最大个数。思路:首先dijkstra求出最短路,那么如果有dis[a] + map[a][b] = dis[b],则边(a,b)一定在最短路径上。根据这一定理可以求出所有最短路径。然后原创 2014-05-18 21:35:28 · 1032 阅读 · 0 评论 -
UVA 11374 Airport Express(优先队列优化dijstra + 枚举)
UVA Airport Express题意:在Iokh市机场快线分为经济线和商业线。线路和速度价格都不同。你只有一张商业线车票,即最多只能坐一站商业线,其他时候只能坐经济线。找出一条去机场最快的线路。思路:因为商业线只能坐一站,假如乘坐一条商业线(a,b),那么起点到a,b到终点都必须是最短路。所以先预处理起点和终点到其他所有点的最短路,分别记为f()和g(),两次dijstra即原创 2014-04-28 19:40:48 · 1418 阅读 · 0 评论 -
hdu 1224 Free DIY Tour(最长路/dp)
http://acm.hdu.edu.cn/showproblem.php?pid=1224基础的求最长路以及记录路径。感觉dijstra不及spfa好用,wa了两次。#include #include #include #include #include #include #include #include #define LL long long#define原创 2014-05-14 13:36:20 · 1046 阅读 · 0 评论 -
poj 3463 Sightseeing(最短路+次短路)
http://poj.org/problem?id=3463大致题意:给出一个有向图,从起点到终点求出最短路和次短路的条数之和。解法:用到的数组:dis[i][0]:i到起点的最短路,dis[i][1]:i到起点的严格次短路vis[i][0],vis[i][1]:同一维的vis数组,标记距离是否已确定sum[i][0]:i到起点的最短路条数,sum[i][1]:原创 2014-05-22 17:31:20 · 1301 阅读 · 0 评论 -
poj 2449 Remmarguts' Date(K短路,A*算法)
http://poj.org/problem?id=2449大致题意:给出一个有向图,求从起点到终点的第K短路。K短路A*算法讲解:#include #include #include #include #include #include #include #include #include #include #define LL long原创 2014-05-23 17:59:36 · 1569 阅读 · 3 评论 -
poj 3031 Big Christmas Tree(水spfa)
http://poj.org/problem?id=3013题意:Because of a technical difficulty, price of an edge will be (sum of weights of all descendant nodes) × (unit price of the edge).这句话一直没看懂。后面还以为是最小生成树。正确原创 2014-05-23 19:36:23 · 1159 阅读 · 0 评论 -
hdu 1317 XYZZY(spfa判环)
http://acm.hdu.edu.cn/showproblem.php?pid=1317大致题意:有n个房间,每个房间都有对应的能量值(可正可负),现在从1出发要到达n,初始能量为100,问是否能够达到n点,到达n的条件是中间及最后的能量值都要大于0.思路:若不考虑环,那么求最长路判断是否大于0即可。若存在负环,对求最长路也没影响;但当存在正环时,最长路就不存在了。可用原创 2014-05-18 08:55:10 · 1165 阅读 · 0 评论 -
hdu 1142 A Walk Through the Forest(最短路径+dfs)
http://acm.hdu.edu.cn/showproblem.php?pid=1142大致题意:若a,b之间有边,走ab边的条件是b到目的地的最短路径小于a到目的地的最短路径。按这个要求走,问最后从1到2的路径数目。思路:先预处理到2的最短路径。然后从1dfs寻求路径数目。有点像DAG上的动态规划求路径数目。#include #include #include原创 2014-04-25 09:48:17 · 1046 阅读 · 0 评论 -
Invitation Cards
http://acm.hdu.edu.cn/showproblem.php?pid=1535题意:有编号为1~p的站点,有Q条公交路线,公交车路线只能从起点走到对应的终点,而且是单向的,每条路线有其对应的车费。早上有p个人从站点1出发,到达与其编号对应的站点(编号为i的人到达编号为i的站点),晚上从各自站点回到1站点,问他们来回的最小费用之和。 思路:很水的题。一个是求源点到其他点原创 2013-12-10 14:45:02 · 905 阅读 · 0 评论 -
poj 1125 Stockbroker Grapevine
图论,走起。。http://poj.org/problem?id=1125题意:给一个有向图,求出这样一个点,它到其他点的最大距离在所有点到其他点的最大距离中是最小的。Floyd求出每两个点间的距离,最后找出最大的即可。#include #include #include #define LL long long#define _LL __int64using names原创 2014-04-16 19:50:20 · 925 阅读 · 0 评论 -
poj 1135 Domino Effect(最短路+枚举)
http://poj.org/problem?id=1135经过无数的WA和PE终于AC。。最短路的模板。1)dis[i]表示i到源点1的最短路径,代表每一张关键牌倒下的时间,并求出最大的最短路径ans1。2)枚举任意两边,计算每一行倒下的时间,设每一行两端的关键牌是i,j。那么这一行完全倒下时间是(dis[i]+dis[j]+map[i][j])/2.0,并求出最大值ans2.原创 2014-04-16 23:20:48 · 910 阅读 · 0 评论 -
uva 10537 Toll! Revisited(优先队列优化dijstra及变形)
Toll! Revisited大致题意:有两种节点,一种是大写字母,一种是小写字母。首先输入m条边,当经过小写字母时需要付一单位的过路费,当经过大写字母时,要付当前财务的1/20做过路费。问在起点最少需要带多少物品使到达终点时还有k个物品。当有多条符合条件的路径时输出字典序最小的一个。思路:已知终点的权值,那么可以从终点向前推。求终点到起点的最短路径,然后按字典序打印路径。比较原创 2014-05-05 00:05:32 · 1549 阅读 · 0 评论 -
hdu 3790 最短路径问题(两个限制条件的最短路)
http://acm.hdu.edu.cn/showproblem.php?pid=3790有两个条件:距离和花费。首先要求距离最短,距离相等的条件下花费最小。dijkstra,只是在判断条件时多考虑了花费。注意重边。#include #include #include #include #include #include #include #incl原创 2014-05-17 00:25:35 · 3304 阅读 · 0 评论 -
hdu 2066 一个人的旅行(裸dijkstra)
http://acm.hdu.edu.cn/showproblem.php?pid=2066求多源多汇的最短路,n最大为1000,floyd三重循环会超时。继续dijkstra吧。#include #include #include #include #include #include #include #include #define LL long long#原创 2014-05-16 16:36:38 · 1391 阅读 · 0 评论 -
hdu Minimum Transport Cost(按字典序输出路径)
http://acm.hdu.edu.cn/showproblem.php?pid=1385求最短路,要求输出字典序最小的路径。spfa:拿一个pre[]记录前驱,不同的是在松弛的时候,要考虑和当前点的dis值相等的情况,解决的办法是dfs找出两条路径中字典序较小的,pre[]去更新。把路径当做字符串处理。我只用之前的pre去更新当前点,并没考虑到起点到当前点的整个路径原创 2014-05-16 01:45:09 · 1783 阅读 · 1 评论 -
hdu 2807 The Shortest Path(矩阵相乘+floyd)
http://acm.hdu.edu.cn/showproblem.php?pid=2807大致题意:给出n个m*m的矩阵,若存在三个互异的矩阵满足a*b = c,那么a,c之间存在权值为1的单向边。有询问u,v,输出uv之间的最短距离。#include #include #include #include #include #include #include #in原创 2014-05-18 16:33:53 · 961 阅读 · 0 评论 -
poj 3621 Sightseeing Cows(最优比例生成环,01分数规划)
http://poj.org/problem?id=3621大致题意:给出一个有向图,每个点都有一个点权,每条有向边也都有一个边权,要求出一个环使得环中点权之和与边权之和的比值最大。思路:和最优比率生成树异曲同工。设点权是v[i],边权是e[i]。不同的是这里一个是点,一个是边。怎么像生成树一样把这两个值放到一起呢?可以把他们都转化到边上。同样的二分λ,每次给边重新赋权为v原创 2014-05-27 19:56:55 · 1356 阅读 · 0 评论