
图论-最短路
文章平均质量分 72
JeraKrs
本人目前就职于百度商业研发部,有需要内推的朋友简历可发我邮箱 jerakrs@qq.com
展开
-
uva 567 Risk(最短路Folyd)
题目链接:567 - Risk题目大意:固定有20个点,然后输入19行的数据,没一行先输入一个n,表示该行还有n个数,然后输入n个数,表示每个数与该行的序号数相同的点有连接,并且权值为1, 在数入m,表示有m次询问,每个询问包含两个数值a,b,输出ab间的最短路径。解题思路:裸的Floyd算法,算法参见《算法竞赛入门经典》P206。#include #in原创 2013-10-12 20:22:55 · 1356 阅读 · 0 评论 -
uva 11478 - Halum(BellmanFold)
题目链接:uva 11478 - Halum#include #include #include #include #include using namespace std;const int maxn = 505;//const double eps = 1e-3;struct BellmanFord { struct Edge { int u, v, d原创 2015-09-07 23:03:04 · 591 阅读 · 0 评论 -
uva 10537 - The Toll! Revisited(最短路)
题目链接:uva 10537 - The Toll! Revisited从终点向起点做最短路,维护到达节点最少需要多少个。#include #include #include #include #include using namespace std;typedef long long ll;const int maxn = 55;const int in原创 2015-09-07 22:30:39 · 965 阅读 · 0 评论 -
uva 10246 - Asterix and Obelix(最短路)
题目链接:uva 10246 - Asterix and Obelix枚举起始点,以起始点的点权为最大值。然后维护两点之间的最短距离。#include #include #include #include #include using namespace std;const int maxn = 100;const int inf = 0x3f3f3f3f原创 2015-09-10 22:39:07 · 888 阅读 · 0 评论 -
uva 11280 - Flying to Fredericton(最短路)
题目链接:uva 11280 - Flying to Fredericton增加一维表示到达当点停靠了几次,然后dijsktra做一遍最短路。#include #include #include #include #include #include #include #include using namespace std;typedef pair pi原创 2015-09-11 21:05:34 · 688 阅读 · 0 评论 -
uva 11367 - Full Tank?(最短路)
题目链接:uva 11367 - Full Tank?增加一维表示油量,每个状态可以考虑向下一个节点移动,也可以选择加一单位油。#include #include #include #include #include using namespace std;typedef pair pii;const int maxn = 1005;const int m原创 2015-09-11 21:07:38 · 1128 阅读 · 0 评论 -
uva 10816 - Travel in Desert(最小瓶颈生成树+最短路)
题目连接:10816 - Travel in Desert求出最小生成树,瓶颈值为n-1条边中最大那条,将所有权值大于瓶颈值的边舍去,剩下一张无向图,做一遍最短路。#include #include #include #include #include #include using namespace std;typedef pair pii;const原创 2015-09-11 20:38:47 · 921 阅读 · 0 评论 -
uva 11374 - Airport Express(最短路)
题目链接:uva 11374 - Airport Express#include #include #include #include #include using namespace std;typedef pair pii;const int maxn = 505;const int inf = 0x3f3f3f3f;struct Edge { int v原创 2015-09-07 22:54:29 · 638 阅读 · 0 评论 -
uva 1376 - Animal Run(最短路)
题目链接:uva 1376 - Animal Run以每个三角形为一个节点,建图,起点连向左下边界,终点连向右上边界。#include #include #include #include #include using namespace std;const int maxn = 2005;const int maxm = 2 * 1e6 + 5;cons原创 2015-09-07 23:17:31 · 900 阅读 · 0 评论 -
uva 1078 - Steam Roller(最短路)
题目链接:uva 1078 - Steam Roller建图,将一个点拆成8个点,分别是4个方向,以及入边是否加倍。然后做最短路。#include #include #include #include #include using namespace std;const int maxn = 105;const int inf = 0x3f3f3f3f;原创 2015-09-07 22:36:59 · 861 阅读 · 0 评论 -
uva 10917 - Walk Through the Forest(最短路+记忆化)
题目链接:uva 10917 - Walk Through the Forest做一遍最短路,记录下所有点到终点的距离,然后重新建图,如果d[u] #include #include #include #include #include using namespace std;typedef pair pii;typedef long long ll;co原创 2015-09-07 22:41:19 · 1228 阅读 · 0 评论 -
hdu 5433 Xiao Ming climbing(最短路)
题目链接:hdu 5433 Xiao Ming climbing三维状态,x,y,k,用优先队列优化的dijkstra做一遍。#include #include #include #include #include #include using namespace std;const int maxn = 55;const double eps = 1e-原创 2015-09-12 22:09:01 · 600 阅读 · 0 评论 -
uva 1416 - Warfare And Logistics(最短路)
题目链接:uva 1416 - Warfare And Logistics#include #include #include #include #include using namespace std;typedef long long ll;const int maxn = 105;const int maxm = 1005;const ll inf = 0原创 2015-09-07 23:21:06 · 737 阅读 · 0 评论 -
uva 1048 - Low Cost Air Travel(最短路)
题目链接:uva 1048 - Low Cost Air Travel以两位状态为图上的一个节点,当前城市编号以及匹配上旅程上的p个城市。然后建图做dfs,并记录路径。#include #include #include #include #include using namespace std;const int maxn = 50005;const i原创 2015-09-07 22:25:16 · 1371 阅读 · 0 评论 -
hdu 4640 Island and study-sister(最短路+状压dp)
题目链接:hdu 4640 Island and study-sister解题思路用二进制数表示2~n的点是否移动过的状态,dp[s][i]dp[s][i]表示状态s上的点必须经过并且当前在i节点的最小代价, 这步用类似最短路的方式求出。 然后是dp2[i][s]dp2[i][s]表示i个人移动过s状态的点的最小代价。代码#include <cstdio>#include <cstring>#原创 2015-10-28 22:00:11 · 882 阅读 · 0 评论 -
uva 1569 - Multiple(最短路)
题目链接:uva 1569 - Multiple代码#include <cstdio>#include <cstring>#include <queue>#include <algorithm>using namespace std;const int maxn = 5005;const int inf = 0x3f3f3f3f;int N, M, A[maxn], D[maxn], P[原创 2015-10-30 23:45:50 · 793 阅读 · 0 评论 -
uva 10798 - Be wary of Roses(最短路)
题目链接:uva 10798 - Be wary of Roses代码#include <cstdio>#include <cstring>#include <queue>#include <algorithm>using namespace std;const int maxn = 23;const int maxm = 11;const int dir[][2] = {{0, 1},原创 2015-10-30 23:44:10 · 826 阅读 · 0 评论 -
uva 11090 - Going in Cycle!!(二分+BellmanFord)
题目链接:uva 11090 - Going in Cycle!!二分环的平均值,叫每条边减掉该值,判断是否有负环存在,存在则不行。#include #include #include #include #include using namespace std;const int maxn = 55;const double eps = 1e-3;str原创 2015-09-07 22:44:34 · 524 阅读 · 0 评论 -
uva 10075 - Airlines(几何+最短路)
题目链接:uva 10075 - Airlines在球面上处理出两点的距离,Floyd处理。#include #include #include #include #include #include //#include using namespace std;/* d = r*sqrt(2-2*(cos(lat1)*cos(lat2)*cos(lon1-原创 2015-08-17 21:19:03 · 901 阅读 · 0 评论 -
uva 10801 - Lift Hopping(最短路Dijkstra)
题目链接:10801 - Lift Hopping题目大意:有一栋100层的大楼(标号为0~99),里面有n个电梯(不超过5个),以及要到达的层数(aid),然后是每个电梯走一层所需的时间,再n行就是对应每个电梯可以到达的层数,数量不定。然后每装换一次电梯需要等待60秒,问,最快能多快到达目标层数。解题思路:这题有点坑啊,一开始是用邻接表+Dijkstra,可是忘记考虑ai原创 2013-10-13 10:54:53 · 1788 阅读 · 0 评论 -
uva 10986 - Sending email(最短路Dijkstra)
题目连接:10986 - Sending email题目大意:给出n,m,s,t,n表示有n个点,m表示有m条边,然后给出m行数据表示m条边,每条边的数据有连接两点的序号以及该边的权值,问说从点s到点t的最短路径是多少。解题思路:本题应该是无环正权值的一个图,并且本题如果直接用Dijkstra算法去做的话超时,所以一定要用优先队列去进行优化,《算法竞赛入门经典》中介绍了这种原创 2013-10-13 08:58:04 · 2562 阅读 · 0 评论 -
uva 104 - Arbitrage(最短路Floyd)
题目链接:104 - Arbitrage题目大意:现在有n种货币原创 2013-10-13 16:20:27 · 2938 阅读 · 0 评论 -
uva 10803 Thunder Mountain(最短路)
题目链接: 10803 - Thunder Mountain题目大意:给出一些点的坐标然后如果这两个点之间的距离大于10的话代表不能够移动,问说里面任意一个点是否可以到达其他的点,如果所有点都联通的话,输出两点之间最长的距离,如果存在不联通的点,输出Send Kurdy。解题思路:Floyd算法的模版题,不解释。。。。。#include #include原创 2013-10-18 15:45:56 · 1569 阅读 · 0 评论 -
uva 658 - It's not a Bug, it's a Feature!(优先队列Dijkstra)
题目链接:uva 658 - It's not a Bug, it's a Feature!题目大意:有一个软件,有n个bug, 然后现在有m个补丁,然后m行,分别给出补丁需要的时间,以及原始状态和修复后的状态。对于原始状态,‘-’代表不能有这个bug,‘+’代表必须有这个bug,‘0’表示可有可无;对于修复后的状态,‘-’代表可以修复这个bug,‘+”代表会新增这个bug,’原创 2013-11-24 20:48:51 · 1510 阅读 · 0 评论 -
uva 10269 - Adventure of Super Mario(Floyd + Dijkstra + dp)
题目链接:uva 10269 - Adventure of Super Mario题目大意:马里奥就出桃子之后,要返回自己所居住的村子标号为1,给出A 和 B表示有A个村子和B个城堡,大魔王所居住的城堡A + B,1 ~A为村子,A + 1 ~ B为城堡。现在有m条路,连接着村子、城堡;每条路有它的距离;然后马里奥可以使用k次魔法,可以从一个地方瞬间移动到另外一个地方(不可以在路中间停原创 2013-11-24 16:15:00 · 1838 阅读 · 0 评论 -
uva 10985 - Rings'n'Ropes( 最短路Folyd)
题目连接:uva 10985 - Rings'n'Ropes题目大意:给出n和m,表示有n个戒指和m条绳子,每条绳子的长度为1,给出每根绳子连接的戒指,然在左右手各握住一个戒指,拉直,问说最多有多少个绳子被绷直。解题思路:首先先用Floyd算法将每两个戒指之间的最短距离求出(因为向两端扯的时候,最大距离便是连接两个戒指的最短距离),然后枚举两枚戒指,找出中间所有的点(f[x原创 2013-11-26 20:37:37 · 1471 阅读 · 0 评论 -
uva 515 - King(差分约时系统)
题目链接:uva 515 - King实在不懂什么是差时约分系统,不过大概了解是说建完图之后不能存在负环(既要最短路),如果存在负环的话,两个sum之间就不存在一个稳定的关系。参考题解。#include #include #include #include using namespace std;const int N = 105;const int INF原创 2013-11-26 20:51:48 · 1461 阅读 · 0 评论 -
Codeforces 400D Dima and Bacteria(Floyd+并查集)
题目链接:Codeforces 400D Dima and Bacteria题目大意:给出n,m和k,表示有n个细菌,m种仪器和k种细菌,给出k种细菌的数量ci,然后每个细菌按照种类排成一排(所以有第i种细菌的序号从∑(1≤j≤i-1)cj + 1 到∑(1≤j≤i)cj);接下来给出m种仪器,有u,v,x三个值,表示说从可以在第u,v号细菌之间移动能量,代价为x。请帮助博士判断说这些原创 2014-03-07 13:03:13 · 1698 阅读 · 0 评论 -
hdu 4725 The Shortest Path in Nya Graph(dijkstra+优先队列)
题目链接:hdu 4725 The Shortest Path in Nya Graph题目大意:n个点,m条边,以及相邻层之间移动的代价c,给出每个点所在的层数,以及m条边,每条边有u,v,val,表示从节点u到v(无向),并且移动的代价val,问说从1到n的代价最小是多少。解题思路:dijkstra算法,主要是建图,每一层有一个汇点,汇点连接所有处于当前层的点,代价为0原创 2014-05-04 21:15:44 · 1061 阅读 · 0 评论 -
hdu 4571 Travel in time(Floyd+记忆化)
题目链接:hdu 4571 Travel in time题目大意:n个城市,m条路,总时间t,起始城市s,终点城市e,接下来给出各个城市的浏览时间,各个城市浏览后的满意程度。然后是m条路的信息。要求一个浏览顺序,使得总的满意程度最大,然后经过一个城市可以选择不去浏览,当前浏览城市的满意度一定要比前一个浏览城市的满意度高,并且最终要回到城市e解题思路:因为经过一个城市原创 2014-04-09 21:01:49 · 1130 阅读 · 0 评论 -
hdu 4849 Wow! Such City!(dijstra)
题目链接:hdu 4849 Wow! Such City!题目大意:有N个城市,给定计算两两城市距离的公式,然后求0到1~N-1的城市中,最短路径模掉M的最小值。解题思路:先根据公式求出距离C矩阵,注意中间连乘3次的可能爆long long,然后用裸的dijstra算法求最短路。#include #include #include #include using nam原创 2014-07-08 19:49:17 · 1122 阅读 · 0 评论 -
Codeforces 449B Jzzhu and Cities(最短路)
题目链接:Codeforces 449B Jzzhu and Cities题目大意:Jzzhu是一个国家的总统,这个国家有N座城市,以1为首都,已经存在了M条公路,给定M条路。并且还有K条铁轨,铁轨均有首都出发,连接si,距离为yi。现在Jzzhu想要节省经费,拆除一些铁轨,问说最多能拆除多少个铁轨,要求每座城市与首都的最短距离不变。解题思路:最短路,多加一个标记数组,每个si标记原创 2014-09-24 15:23:05 · 2001 阅读 · 0 评论 -
hdu 5361 In Touch(最短路+并查集)
题目链接:hdu 5361 In Touch最短路,D[i]表示从i节点出发时最短距离,最后答案减掉C[i]即可。然后用并查集优化维护处理过的节点。#pragma comment(linker, "/STACK:102400000,102400000")#include #include #include #include using namespace std原创 2015-08-07 19:22:29 · 950 阅读 · 1 评论 -
hdu 5294 Tricks Device(最短路)
题目链接:hdu 5294 Tricks Device#include #include #include #include using namespace std;const int maxn = 60000 + 5;const int inf = 0x3f3f3f3f;int N, M, E, first[maxn], jump[maxn * 2], link[m原创 2015-07-31 21:42:28 · 596 阅读 · 0 评论 -
hdu 5385 The path(最短路+构造)
题目链接:hdu 5385 The path维护一个l,r,l从2开始递增,r从N开始递减,每个距离值l,r至多走一步,并且每次将可以到达的点标记,注意最后最大值只能有一个。#include #include #include #include #include using namespace std;typedef pair pii;const int m原创 2015-08-16 09:21:27 · 824 阅读 · 0 评论 -
hdu 5521 Meeting(最短路)
题目链接:hdu 5521 Meeting解题思路每个块只会被松弛一次,每个点也只会松弛一次。代码#include <cstdio>#include <cstring>#include <queue>#include <vector>#include <algorithm>using namespace std;typedef long long ll;const int maxn =原创 2015-11-02 10:06:01 · 803 阅读 · 0 评论