
图论----最短路径
长沙橘子猫
这个作者很懒,什么都没留下…
展开
-
hdu 2066 迪杰斯特拉算法入门
点击打开题目一个人的旅行Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 41721 Accepted Submission(s): 14169Problem Description原创 2017-11-21 16:11:25 · 521 阅读 · 0 评论 -
Codeforces Round #265 (Div. 1) E. The Classic Problem 最短路+线段树+hash
E. The Classic Problem题意:有一个无向图,每条边的权值为2^x(0<=x<=1e5),求 s 到 t 的最短路。思路:最短路好搞,关键是这个权值不好比较大小,由于x<=1e5,但是我们发现从一个点 u 到 v,其距离只增加了2^a[x],那么我们可以用可持久化线段树保存新增的这个信息,每个点的最短路都用一颗线段树保存,线段树第 i 个叶子节点保存的是...原创 2019-04-09 00:26:36 · 312 阅读 · 0 评论 -
2018 icpc沈阳站网络赛 D. Made In Heaven k短路
题目题意:给一个有向图,判断其k短路是否超过T。K短路是A*算法的应用,关于A*算法详解:A星算法详解,了解了A*算法详解后,就可以再看A*算法在K短路上的运用:K短路算法详解,看完这两篇详解后,这题就很容易了。先用迪杰斯特拉算法求出h数组,即终点到每个点的最短路,然后用优先队列根据g+h的和(数越小越优先)搜索最短路,若搜到终点k次,那么第k次的g值就是答案。#include<...原创 2018-09-11 21:31:13 · 340 阅读 · 0 评论 -
LA 4128 Steam Roller 拆点建图+迪杰斯特拉
LA 4128题意:有一个r条横线和c条竖线组成的网格,你的任务是用最短时间从起点(r1,c1)走到终点(r2,c2),路上一些线段有权值代表时间,权值为0不能通过,刚出发和到达终点时,时间是权值的两倍,进入一条边之前转弯或者离开一条边以后立即需要转弯时,时间也是权值两倍。思路:白书上的题,建图法相当妙,把每个点拆成8个点(r, c, dir, doubled),分别表示上一步从上下左右的哪个方向...原创 2018-07-15 21:41:30 · 339 阅读 · 0 评论 -
CSU 2005 Nearest Maintenance Point bitset+迪杰斯特拉
CSU 2005题意:给一个n个节点m条边的带权无向图,给出s个援助节点,有q个问题,每次问一个节点周边最短距离的援助节点有哪些。思路:去年省赛的题,当时不幸拿了铁....看了csuzhucong这位大佬的代码才学会的,是个很好的题,把s个援助节点当起点,搜到所有节点的最短路,用bitset的位运算传递状态,如果有多个起点的某个节点的最短距离相同,那么这个节点周围最近的援助点就是那多个起点,并且用...原创 2018-07-14 20:58:01 · 260 阅读 · 0 评论 -
UVA 1416 Warfare And Logistics 迪杰斯特拉算法
UVA 1416题意:给一个n个节点m条边的无向图,求每个点到所有点的最短距离之和,如n=3时,答案是c=d[1][2]+d[1][3]+d[2][1]+ d[2][3]+d[3][1]+d[3][2],不联通的两点距离为L,还要求删除一条边后的最大的c'。思路:每次dij()算法求出每个点到所有点的最短距离和,有n个点,复杂度nmlogn,还需要删除每条边再求这么多c',复杂度为nm...原创 2018-07-12 15:15:17 · 163 阅读 · 0 评论 -
csu 1808 地铁 迪杰斯特拉+拆点建图
csu 1808思路:2016年省赛的最短路题,去年省赛也是考了最短路,那么问题来了,今年会不会继续考最短路呢....这个题和一般的最短路不太一样,每个点还多了个路线,同一个点不同路线还得多花时间 |ci - cj | ,那么将点和路线结合(u,ci)看成一个点,前面输入的边容易转化成符合条件的边,但是问题来了,假设一个点u有1e5条路线,那么就有1e5个这样的点,如何在他们之间建立边呢,全部...原创 2018-07-17 21:40:51 · 457 阅读 · 0 评论 -
LA 3561 Low Cost Air Travel 迪杰斯特拉+建图
LA 3561题意:有n张联票如(1-->3-->2),每张联票有价格,从起点开始,可以任选联票的某站中途下飞机,不过下了后不能再上,给出NI个行程,格式如(1-->3-->4),要求花最少的钱买票,可以按顺序到达行程的每个城市。思路:这个题是个好题,难在构图,花了我巨长的时间构了个错误的图....在网上学了各路大神的方法后,总算搞定了。只要搞定构图,这题就直接套模...原创 2018-07-17 11:27:30 · 539 阅读 · 3 评论 -
UVA - 11090 Going in Cycle!! 弗洛伊德判圈算法
点击打开链接题意:给定一个n个点m条边的加权有向图,求平均权值最小的回路。思路:用二分求ans,每次二分把所有边的权值减去ans,就把问题转化成了有向图是否存在负圈回路,可用弗洛伊德判圈算法去判断。#include<cstdio>#include<cstring>#include<algorithm>#include<vector>#incl...原创 2018-06-26 21:41:10 · 231 阅读 · 0 评论 -
UVA 11374 Airport Express 迪杰斯特拉算法
UVA 11374题意:给你一个普通的无向带权图,再给你一个vip无向带权图,给你起点终点,要求普通图随便走,vip图只能走一条边,求起点到终点的最短路。思路:vip图最多k=1000条边,如果枚举每条边并将其加入普通图求最短路,复杂度太高,可以这样想,先从起点求到每个点的最短路并用 g 数组保存,再从终点求每个点的最短路并用 f 数组保存,假如u,v是vip的一条路,那么ans=min(ans,...原创 2018-06-26 19:22:05 · 262 阅读 · 0 评论 -
UVA 11487 Halum 二分+差分约束
UVA 11487题意:给定一个有向带权图,每次可以选择一个节点v和一个整数d,使得所有以v为终点的边权减少d,所有以v为起点的边权值增加d,求所有边权中最小值的最大值,如果可以无限大输出 Infinite,如果不是正数输出No Solution。思路:可以二分这个“最小值最大”,二分一个答案x,设sum[ a ]为以a为起点的边增加的值,那么对于a->b,可以得到 dist[ a ...原创 2018-06-30 20:44:54 · 278 阅读 · 0 评论 -
UVA 10917 Walk Through the Forest 迪杰斯特拉+记忆化搜索
UVA 10917题意:有n个地点,有m条带权无向边连接这些点,家的编号为2,公司编号为1,起点是公司,终点是家,只能沿着这样一条路(A,B)走,存在一条从B出发回家的路径,比所有从A出发回家的路径都短,求有多少条这样的路径。思路:先求从家到每个点的最短路保存在d数组里,如果从A出发,那么只有d[ B ]<d[ A ]才能走B,那么很容易想到记忆化搜索,设dp[ i ]为从 i 出发...原创 2018-06-30 17:49:29 · 207 阅读 · 0 评论 -
2019中国大学生程序设计竞赛(CCPC) - 网络选拔赛
我只写了02 03 04,05 gcd 是我离现场切gcd最接近ac的一场,果然数论还是写不出gcd1002 array解法:如果这题不带修改操作,相信大家都会做,我就来讲讲怎么处理修改,对于每次修改操作,我不需要真的去修改它,而是把修改的那个元素插入set中去,然后每次查询,我们不带修改查一个答案v1,然后再去set里找第一个大于等于k的v2,min(v1, v2)就是答案。证明:如果v2...原创 2019-08-24 01:34:12 · 1726 阅读 · 2 评论