
最短路
Eirlys_North
这个作者很懒,什么都没留下…
展开
-
noip2014寻找道路
题目描述在有向图G 中,每条边的长度均为1 ,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件:1 .路径上的所有点的出边所指向的点都直接或间接与终点连通。2 .在满足条件1 的情况下使路径最短。注意:图G 中可能存在重边和自环,题目保证终点没有出边。请你输出符合条件的路径的长度。输入输出格式输入格式:原创 2016-11-12 20:02:34 · 506 阅读 · 0 评论 -
poj 3463 最短路和次短路
题意:n个点,m条有向边,给定起点和终点,求出起点到终点最短路和比最短路长1的路径的总条数dijkstra算法,邻接表建图改进Dijkstra算法。将状态扩展到二维,第一维仍然是顶点编号,第二维分别用于记录最短路和次短路。这样的数据有两个,dist[][2]记录距离,cnt[][2]计数。更新状态时:1)新值小于最短路径长:将最短路的相关数据赋予次短路,更新最短路径长,计数;原创 2017-02-28 19:53:55 · 481 阅读 · 0 评论 -
bzoj 1614 二分+最短路
题意:找一条将1号和N号电话线杆连起来的路径,其余的电话线杆并不一定要连入电话网络。 电信公司最终同意免费为FJ连结K对由FJ指定的电话线杆。对于此外的那些电话线,要求最大边最小明显的二分答案,因为只要求1号和n号连起来,其他点不要求,所以跑最短路即可对于二分出mid,我们check时,找到1号到n号的最短路中,边权大于mid的边是否小于等于K,如果满足则为true否则为false所以原创 2017-02-24 07:12:46 · 481 阅读 · 0 评论 -
bzoj 2662 && bzoj 2763 分层图spfa
题意:n个点,m条有向边,最多使k条边的边权变为原来的一半,每条边能且只能缩短一次,问从点1到点n的最短距离分层图就是有多维状态的有边长图,然后比起正常的最短路转移就是多了一种跨维度转移的状态转移。var n,m,k,ans,l,x,y,z:longint; i :longint; pre,other,len原创 2017-02-26 17:08:13 · 444 阅读 · 0 评论 -
bzoj 3245 spfa
题意:n个点,编号为0~n-1,m条有向边,限速不为0的边按照限速前进,限速为0的边按进入这条道路时的速度前进(即到该条边起点的速度),给定终点,初始起点为点0,初始速度为70,问从点0到终点最快时间的路径可以理解成拆点的spfadis[i,j]表示到达第i个点的速度为j,spfa更新时讨论该边的速度是否为0分别按两种方法更新,每次更新dis[i,j]时,记录转移来的点和转移来的速度(原创 2017-02-26 19:30:04 · 416 阅读 · 0 评论 -
bzoj 1003 dp+spfa
题意:m个码头,每天从1号码头到m号码头,有些码头在某些天是不能经过的,每次修改路线要花cost,求n天最小总成本,总成本=n天经过权值和+修改路线次数*cost跑n^2遍spfa预处理出第i天到第j天从1号码头到m号码头的最短距离t[i,j]对于第i天,我们有两种选择(1)从第一天开始就不改变航线(2)从第j天开始改变航线一直保持到第i天即f[i]=min{t[1,i]*i,原创 2017-03-10 20:46:35 · 282 阅读 · 0 评论 -
bzoj 1598 K短路 A*
题意:n个点,起点为n终点为1,m条有向边。求前K短路,如果不存在输出-1涨姿势时刻——A*算法A*算法的核心在于它的估值函数的设计上: f(n)=g(n)+h(n) 其中,f(n)是每个可能试探点的估值;g(n)表示从S到n的实际代价h(n)表示从n到T的估值(h(n)设计的好坏,直接影响着具有此种算法的是否能称为A*算法)。具有f(n)=g(n)+h(n)原创 2017-03-26 11:35:34 · 522 阅读 · 0 评论 -
bzoj 2407 最短路
题意:从1出发再回到1,每条边能且只能经过一次(对于一条边 u->v 和 v->u 的时间可能是不同的但算作同一条边),求最少的时间显然,如果我们不要求回来的话,随便跑跑最短路即可,因为我们是绝对不会经过重边的,即绝对不会走过去再走回来,这样的话我完全可以不走它。所以当你确定了第一步,即从1出发到哪个和1直接相连的点x,删去走过去的边,跑x到1的最短路即可但是同样显然的是,枚举+最短路 你原创 2017-03-26 20:05:51 · 727 阅读 · 0 评论 -
洛谷 P1629 spfa + 正难则返(反向建图)
题意:n个点,m条有向边,求从点1到各点再从各点回到点1的最小路程和从点1到个点——单源最短路从各点回到点1——由于是单向边,所以去和回所经过的路程可能不一样且都回到1——反向建图,重新转化成1到各点——单源最短路#include<stdio.h>#include<string.h>struct rec { int x; int y; ...原创 2019-09-23 09:04:12 · 448 阅读 · 0 评论