
图论—最短路
文章平均质量分 75
Ezereal
这个作者很懒,什么都没留下…
展开
-
3660 Cow Contest (传递闭包 floyd)
题意:有n头牛比赛,m种比赛结果,最后问你一共有多少头牛的排名被确定了,其中如果a战胜b,b战胜c,则也可以说a战胜c,即可以传递胜负。求能确定排名的牛的数目。分析:如果一头牛被x头牛打败,打败y头牛,且x+y=n-1,则我们容易知道这头牛的排名就被确定了,所以我们只要将任何两头牛的胜负关系确定了,在遍历所有牛判断一下是否满足x+y=n-1,将满足这个条件的牛数目加起来就是所求解。原创 2016-02-21 14:06:51 · 397 阅读 · 0 评论 -
poj 1860 Currency Exchange(最长路)
提示:关键在于反向利用Bellman-Ford算法题目大意有多种汇币,汇币之间可以交换,这需要手续费,当你用100A币交换B币时,A到B的汇率是29.75,手续费是0.39,那么你可以得到(100 - 0.39) * 29.75 = 2963.3975 B币。问s币的金额经过交换最终得到的s币金额数能否增加货币的交换是可以重复多次的,所以我们需要找出是否存在正权回路,且最后原创 2016-02-21 11:48:13 · 431 阅读 · 0 评论 -
HDU 3416 Marriage Match IV (最短路判断建边+最大流)
转载自:http://blog.youkuaiyun.com/cquwel/article/details/48252635题意就是从起点到终点有几条最短路,这里有一个条件,就是每条边只能被选择一次,也就是说,1->2这条边在第一条最短路里面,那么就不能放在第二条最短路里面。首先如何判断一条边是否是最短路里面的边,那就是正向做一次最短路,反向做一次最短路,d[i]表示从起点到i点的最短距离,dr[i]表示转载 2016-09-08 09:53:40 · 363 阅读 · 0 评论 -
2016 ACM/ICPC Asia Regional Qingdao Online hdu 5889 Barricade (最短路+最小割)
题意:题意转化过来就是给定一张图,每条边长度都是1,还有一个切割这条边的代价。现在有一伙人从第n个点到第1个点走最短路,问最少需要花费多少代价阻断这伙人的路线题解:很显然就是处理出最短路,按照最短路建网络流的边,跑一遍最小割就好。#include #include #include #include #include #include #include #includ原创 2016-09-17 18:36:25 · 487 阅读 · 0 评论 -
[CSUOJ1808] 地铁(边最短路+优先队列)★
题意:题面挺清楚啦,就是求一个最短路。只不过每个点之间的边有可能是不同线路的,要从一个线路换到另一个线路是需要花费时间的。边有特殊的定义,那么就不以点为分析对象做最短路了。直接拿边,dis(i)表示从1到达第i条边的指向点为终点的最短距离,每次松弛找到的边的目的点是t的时候更新一下结果。注意在出队的时候才标记vis,因为这样才能保证之前某个点在每次松弛的时候都会入队,否则便一直WA原创 2016-09-05 13:48:47 · 1808 阅读 · 0 评论 -
poj 3621 Sightseeing Cows (最优比率生成环 01分数规划问题 )
题目大意就是找到一个环使得顶点权值之和与边权之和的比率最大首先,需要注意的是题目要求可以从任意一点开始,网上很多解题报告默认的从1点开始,虽然过了此题,但是显然是不太对的由于题目是求的max,那么在边权变形后,用SPFA求最短路,看是否出现负环, 然后根据这个进行二分查找。#include #include #include #include #include #incl原创 2016-08-21 15:59:32 · 384 阅读 · 0 评论 -
2016 大连网络赛 hdu 5876 ACM ICPC(补图求最短路)
题意:给一个无向图以及一个点s,求在其补图点 s 到其他n-1个点的最短距离解:利用原图求补图上的最短路,bfs遍历,U到 与U的不邻接的点的边即为补图的一条边,可以直接计算出 到这些不邻接的点距离,dis[v']=dis[u]+1;然后将这些不邻接的点加入队列,继续寻找,用两个集合,,一个记录不邻接的点,一个记录没有用过的点跟之前写的四川省赛一样一样的,我tm又用map超时了。。。#inclu原创 2016-09-11 19:17:29 · 576 阅读 · 0 评论 -
HDU 4034 Graph(11年成都 Floyd运用)
转载请注明出处,谢谢http://blog.youkuaiyun.com/acm_cxlove/article/details/7854526 by---cxlove题目:给出一个有向图,任意两点之间的最短路径,问是否 存在这样的图,如果存在最少有几条边http://acm.hdu.edu.cn/showproblem.PHP?pid=4034 对于第一问判断是否存转载 2016-08-31 08:02:00 · 359 阅读 · 0 评论 -
SCU - 4444 别样最短路径-大数据完全图
题目大意:给定一个完全图,其中有两种边,长度为a(不超过5e5)或长度为b(剩下的),求有1~n的最短路径(数据范围1e5)解题思路:如果1和n之间连边为a那么答案一定为a和一条最短的全由b组成的路径的较小者,如果1和n之间连边为b,那么答案一定 为b和一条最短的全由a组成的路径的较小者。对于第1种情况直接跑spfa就可以了,第二种情况由于边数较多,不能直接spfa原创 2016-08-27 21:16:44 · 989 阅读 · 0 评论 -
hdu 3631 Shortest Path (floyd)
题意:给出n个点,m条边,q个操作。对两个点的路径不得经过未标记的点。操作可以标记点或者询问两个点之间的距离,若操作非法则返回指定语句,否则执行操作。作为中间点,一个点一个点插入,理解Floyd的过程即可。#include #include#include#include#define N 330#define INF 0x7ffffffusing namespace转载 2016-07-27 09:44:58 · 338 阅读 · 0 评论 -
hdu 1839 Delay Constrained Maximum Capacity Path(二分+SPFA)
题目大意:有N个点,点1为珍贵矿物的采矿区, 点N为加工厂,有M条双向连通的边连接这些点。走每条边的运输容量为C,运送时间为D。他们要选择一条从1到N的路径运输, 这条路径的运输总时间要在T之内,在这个前提之下,要让这条路径的运输容量尽可能地大。一条路径的运输容量取决与这条路径中的运输容量最小的那条边。分析与总结:因为每条路径的容量取决于这条路径中所有边中的最小原创 2016-07-27 09:27:17 · 294 阅读 · 0 评论 -
uva 11549 Calculator Conundrum(floyd判圈)
uva 11549题意:有个老式计算器,每次只能记住一个数字的前n位。现在输入一个整数k,然后反复平方,一直做下去,能得到的最大数是多少。例如,n=1,k=6,那么一次显示:6,3,9,1...题解:重复下去必然会重复,可以利用set结构保存是否出现过这个数,更可以利用floyd判圈算法Floyd算法:两个指针p1,p2.最开始先全都指向链表头,p2移动的速度比p1快一倍,原创 2015-08-14 14:15:34 · 572 阅读 · 0 评论 -
HDU1599 find the mincost route (floyd求最小环)
题目大意:就是说8600要去旅行,给你若干个景区,8600想要找到一条路线,比如从A出发最终回到A,并且除了出发点外其余的景区不会不会重复走一遍,如V1>V2>V3>....>Vn,并且景区数不少于3.现在要求你找出一条花费最少的路径。其中数据N,M为景区数,道路数。a,b,c表示从a到b需要花费c元。 解法:就是利用Floyd算法扩展求出无向图的最小环。 注意:无向图的最小环和有转载 2016-07-26 11:46:54 · 435 阅读 · 0 评论 -
HDU 2224 The shortest path (TSP模板)
题目大意:给定平面上n个点的坐标,进行一次遍历,遍历的规则就是先从最左边的点遍历到最右边的点,然后从最右边的点遍历到最左边的点,而且所有点要遍历完。算法:这题完全就是双调旅途的模板求解过程:(1)首先将各点按照x坐标从小到大排列,时间复杂度为O(nlgn)。(2)寻找子结构:定义从Pi到Pj的路径为:从Pi开始,从右到左一直到P1,然后从左到右一直到Pj。在这个路径上,会经原创 2016-07-26 10:08:52 · 986 阅读 · 0 评论 -
hdu 1217 Arbitrage (Floyd算法)
题意:给几个国家,然后给这些国家之间的汇率。判断能否通过这些汇率差进行套利交易。Floyd的算法可以求出任意两点间的最短路径,最后比较本国与本国的汇率差,如果大于1,则可以。否则不可以。#include#include#includeusing namespace std;mapname;#define MAXN 40double g[MAXN][MAXN];//**原创 2016-07-25 16:55:29 · 346 阅读 · 0 评论 -
hdu 2544 最短路(Dijkstra模板)
#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define L(i) i<<1#define R(i) i<<1|1#define INF原创 2016-07-25 15:26:25 · 473 阅读 · 0 评论 -
Codeforces Round #372 (Div. 2) -- D. Complete The Graph(SPFA)
大体题意:给你一个无向图,有n 个顶点和m 个边,一些边的权重是正数,一些边的权重是0,表示已经删除,告诉你起始位置和终止位置和最短路L,要求把已经删除的边(权值为0)重建,自己赋值,使得最短路依然是L。思路:单源最短路,其实想清楚了还是很简单的!先求一遍最短路,当发现最短路L2 小于L时,那么肯定是无解的,因为你此时最短路已经小于L了,在加入一些重建的边,只能会原创 2016-10-16 22:10:02 · 368 阅读 · 0 评论