图论-最短路&差分约束
文章平均质量分 84
Flynn_curry
这个作者很懒,什么都没留下…
展开
-
牛客oj 习题11.6最短路径(并查集+Dijkstra+大数加乘比较)
题目链接:click here题意:中问题,数据非常大思路:(1)、由于后输入的边一定要大于之前所有边的总和,所以用并查集解决多余边问题,若输入边的两点不在同一集合,则合并,代表这个集合内的边都是尽可能小的边,若输入边的两点已经在同一集合,则将边舍弃;(2)、使用Dijkstra算法解决最短路问题,由于输入数据太庞大,所以用字符串存储以及运算,这里用到了大数加法、乘法、...原创 2020-04-13 11:33:28 · 341 阅读 · 0 评论 -
牛客oj 习题11.7||poj 3767 I Wanna Go Home(最短路+有向边处理)
题目链接:https://www.nowcoder.com/practice/0160bab3ce5d4ae0bb99dc605601e971?tpId=40&tqId=21359&tPage=1&rp=1&ru=/ta/kaoyan&qru=/ta/kaoyan/question-ranking题目大意:给你1~N的城市和城市之间的距离,且...原创 2020-04-09 16:57:28 · 218 阅读 · 0 评论 -
hdu1874 畅通工程续(裸Dijkstra)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1874思路:话说这题刚开始队列优先级搞错样例居然也能过,害得我找了半天错。。其他没什么好说的。。。#include <cstdio>#include <iostream>#include <algorithm>#include <stri...原创 2016-01-19 17:44:19 · 349 阅读 · 0 评论 -
poj2457 Part Acquisition(dijkstra||spfa+路径记录优化)
http://poj.org/problem?id=2457题意:m个关系n个货物,关系中的a b代表可以拿货物a换取货物b,构造一条最短路,起点1终点n,输出交换次数和路径。思路:看了这个教程。注意是有向图。dijkstra和spfa事实上是一个思路,都是找到最短路后,沿着这条路根据找路时存储的前驱来存储相应的节点。记录路径的方式也有几种,刚开始用数组记录,绕的我头都晕了。后原创 2016-10-22 15:29:16 · 349 阅读 · 0 评论 -
hdu1224 Free DIY Tour(最长路)
http://acm.hdu.edu.cn/showproblem.php?pid=1224题意:Weiwei要去旅行,每个旅行的地点有一个兴趣值,前提是地点序号必须是升序。他想去某些旅游地点旅游然后返回,求最大兴趣值以及路径。思路:核心就是筛选出升序的地点,可以用LIS做,改天水。由于题中有说最后返回的1节点当做n+1看待,所以试着找最长路径。刚开始一直想序号是升序怎么破,没原创 2016-11-15 21:07:47 · 854 阅读 · 0 评论 -
hdu1428 漫步校园(spfa+记忆化搜索)
http://acm.hdu.edu.cn/showproblem.php?pid=1428题意:求总路线数,要求下一步要比上一步离终点近。思路:和hdu1142很像,先用spfa以终点为起点找出终点到所有点的最短距离,接着以最短距离为条件从起点开始记忆化深搜。不过这题是把路的权值当成一个方阵的形式给出,那建边就类似于方格取数了,分别连边。先是用邻接矩阵来了一发,果断TLE,改原创 2016-11-16 21:49:16 · 330 阅读 · 0 评论 -
hdu1595 find the longest of the shortest(dijkstra+枚举)
http://acm.hdu.edu.cn/showproblem.php?pid=1595题意:玛丽卡很生气因为她知道她男友米尔科交到了新的女朋友,于是要去找他算账。但是他们不在一个城市,玛丽卡在N,米尔科在1。米尔科无意中听到有一条路在修路,但是不知道是哪一条。他想让他的新女友去别的地方躲一躲,已知玛丽卡走的肯定是最短路,但是遇到修的路就会走别的路。求问玛丽卡最迟会花费多少时间赶来,好原创 2016-11-17 20:36:42 · 339 阅读 · 0 评论 -
hdu3790 最短路径问题(spfa||dijkstra+两种限制条件)
http://acm.hdu.edu.cn/showproblem.php?pid=3790题意:多了一个花费的限制条件,距离相等则选花费少的。思路:直接在原来的判断条件上加就行,不要想太多。注意有重边。#include #include #include #include #include #include using namespace std;原创 2016-11-18 10:59:57 · 550 阅读 · 0 评论 -
hdu1535 Invitation Cards(spfa+反向建图)
http://acm.hdu.edu.cn/showproblem.php?pid=1535题意:某演员雇佣一些志愿者去一些站台做志愿活动,每一天他们要从起点CSS安检后到所有站台,安检后的所有路程就会有花费,且路程是单向的。做完活动又要返回CSS安检,结束一天的活动。求问这个演员最少需要花费多少。思路:题意比较难理解,应该是阅读水平不够。从起点到所有点,再从所有点到起点的最小原创 2016-11-18 22:06:43 · 379 阅读 · 0 评论 -
hdu2544 最短路(三种基本最短路算法)
http://acm.hdu.edu.cn/showproblem.php?pid=2544题意:中文题求最短路。无负值。思路:主要是用来熟悉三种基本最短路算法。先来整体教程。总体而言,三种算法都是对点的不断松弛而找出最短路,而且最短路途中的任何节点都满足其为当前最短路。1、dijkstra算法:给一个讲的比较好的博客,尤其是里面的动态图可以多看。核心就是两个for,第一个原创 2016-01-19 16:24:29 · 1108 阅读 · 0 评论 -
hdu1142 A Walk Through the Forest(spfa+记忆化搜索)
http://acm.hdu.edu.cn/showproblem.php?pid=1142题意:n个点m个关系,起点是1,终点是2(家)。这里主人公每当选择路A到B时有一个要求:“if there exists a route from B to his home that is shorter than any possible route from A”,翻译为家到B的最短路小于家到原创 2016-10-19 21:51:37 · 265 阅读 · 0 评论 -
poj1716 Integer Intervals(差分约束)
http://poj.org/problem?id=1716题意:m个约束条件,a b表示在[a,b]区间内有约束,求满足所有约束条件内都包含至少两个正整数的最短序列长度。思路:所有约束条件内都包含至少两个正整数,那么我们就在每个约束条件内都约束一个#include #include #include #include #include #include原创 2016-10-21 22:00:44 · 321 阅读 · 0 评论 -
hdu1531 King(经典差分约束)
http://acm.hdu.edu.cn/showproblem.php?pid=1531题意:n个点m个关系,n代表一个序列:a[1]+a[2]+a[3]+...+a[n],m代表有多少个子序列(约束条件),每个约束条件的格式如下,s(对应序列中起点的序号) len(对应序列的长度) gt(大于约束值)/lt(小于约束值) w(约束值大小),前两个参数确定了子序列,子序列的和与约束值构原创 2016-10-20 21:58:34 · 340 阅读 · 0 评论 -
poj3159 Candies(差分约束入门)
http://poj.org/problem?id=3159题意:n个点m个关系,每个关系中A B w代表B比A多至多w颗糖,求n号人比1号人最多多几个糖果。ps:差分约束第一题。思路:首先给一个不错的教程,讲的比较全,没完全懂,先看这道题吧。差分约束与最短路比较明显的区别是,最短路直接给出了路的信息,而差分约束给出的是约束条件不等式。例如这里B比A多至多w,用式子原创 2016-10-20 15:48:19 · 300 阅读 · 0 评论 -
hdu1385 Minimum Transport Cost(经典字典序输出路径)
http://acm.hdu.edu.cn/showproblem.php?pid=1385题意:给你一个矩阵,每个矩阵元素表示i到j的花费,每过一个点还需要过路费,求起点到终点的最小花费。若满足最小花费的路径不止一条,则输出字典序最小的。ps:刚开始拿dijkstra写崩了,本来用栈就已经很麻烦了,居然又有个字典序,这怎么搞啊,转变成字符串越写越麻烦。。于是强大的floyd。原创 2016-10-22 20:03:02 · 450 阅读 · 0 评论 -
poj3259 Wormholes(floyd||spfa判断负环)
http://poj.org/problem?id=3259题意:n个点,m个正权边,w个负权边,正权边为双向,负权边为单向,判断是否有负环。思路:首先知道何为负环,例如有3个点编号1,2,3,任意两点之间都存在一条边,那么1,2,3存在一个环,其上权值和为负即为负环。floyd和spfa两种做法,floyd法卡的时间紧,不但要把min改成普通判断,输出也不能在函数内。整体来说原创 2016-05-31 21:05:34 · 789 阅读 · 0 评论 -
hdu1869 六度分离(三种基本最短路)
http://acm.hdu.edu.cn/showproblem.php?pid=1869题意:中文题,如果某点到任意一点的最短路大于7,则说明结论不成立。思路:水题,不过还是熟悉了对三种算法的操作。首先是floyd,由于是多源最短路算法,所以最后只要遍历找路程即可。而且时间要远快于后面两种。#include #include #include #inclu原创 2016-05-31 22:15:04 · 424 阅读 · 0 评论 -
hdu1317 XYZZY(spfa最长路判环)
http://acm.hdu.edu.cn/showproblem.php?pid=1317题意:给你n个房间,每个房间都有可以补充的能量,有些是负的。刚开始玩家有100的体力,接下来的输入每行代表该行所对应房间序号的能量值w,连接的房间个数num(注意是单向的),连接房间的序号。玩家从1号房走到n号房,求玩家是否有体力可以到达。ps:题意也不怎么好懂。思路:以前求原创 2016-05-31 22:14:53 · 730 阅读 · 0 评论 -
hdu2992 Hotel booking (floyd+spfa+map)
http://acm.hdu.edu.cn/showproblem.php?pid=2992题意:有一辆车要送东西从1到n,这辆车体力有限只能连续行驶10小时。不过他可以预先让自己的公司给自己定旅馆,可以在旅馆里恢复体力,问最少可以经过多少旅馆。ps:这题没做出来,看的别人的。思路:真是一道好题,不光思路经典,还活用了多种容器。首先整体思路吧。最重要的限制条件是行驶原创 2016-10-19 16:03:39 · 420 阅读 · 0 评论 -
poj1201&&hdu1384 Intervals(差分约束)
http://poj.org/problem?id=1201题意:m个约束条件,a b c表示在[a,b]区间内整数至少有c个,求满足这样要求的最短序列长度。思路:因为序列是连续的,所以和上一道题一样同样可以转化为序列和之差,那么S[b]-S[a-1]>=c这个条件就出来了,根据性质也知道是求最长路。不过这题还有个更重要的隐藏条件1 =某一个数。而这里要想利用这个条件,那就满足原创 2016-10-21 09:09:50 · 272 阅读 · 0 评论