
floyd
Eirlys_North
这个作者很懒,什么都没留下…
展开
-
bzoj 1706 倍增floyd
题意:给定一张无向图,求从s到e恰好经过n条边的最短路倍增floydFloyd是通过插入点的方法来找到最短路的,很适合此题,跑n遍floyd的就可以了显然这样做是T的我们将n进行二进制拆分,类似于快速幂的思想map[p][i][j]表示刚好经过2^p条边从j到k的最短距离,易知 map[p][i][j]=min{map[p-1][i][j]+map[p-1][i][j]}。原创 2017-02-14 18:23:07 · 823 阅读 · 0 评论 -
bzoj 2788 / 洛谷3530 差分约束系统+floyd+tarjan
题意:n个正整数变量xi,有两种限制,第一种为xa+1=xb或xc很显然的差分约束系统,建边转化为最长路无解的情况当然就是出现正权环,可以用floyd判(跑floyd的时候不判断i、j、k互异,最后看map[i,i]如果不等于0就是出现了正权环)注意图的特殊性:第一类限制是双向边,第二类限制是单向边考虑求强连通分量显然强连通分量之间的边一定是第二类的单向边 A只要我们保证强原创 2017-02-25 14:50:06 · 434 阅读 · 0 评论 -
bzoj 1641 floyd
题意:n个点,m条单向边,t组询问,询问点x到点y的路径上最大边权最小是多少数据范围暴露一切系列虽然看上去很像二分,但是n的数据范围才nvar n,m,t,x,y,z :longint; map :array[0..310,0..310] of longint; i,j,k :longi原创 2017-02-25 16:32:27 · 335 阅读 · 0 评论 -
bzoj 1624 floyd
题意:n个点,任意两个点之间有一个危险指数,给定一个顺序ai,要求从点1到点n的路径中按照顺序经过点ai(不一定相邻),求最少的危险指数和floyd裸题floyd求出任意两点间的最短路,然后按照1->a1->a2->...->am->n的顺序求一下两点间最短路累加即可var n,m :longint; ans原创 2017-02-26 20:01:50 · 427 阅读 · 0 评论 -
bzoj 1612 floyd传递闭包
题意:n个牛,给出m场比赛的比赛结果(前面的赢后面的),能力强的总是赢能力弱的,求最多有几头牛能确定能力排名第一眼看题再看数据范围,第一反应不是网络流就是建有向边搞图...当一个牛的能力可以确定时,当且仅当能赢它的牛加上输给它的牛有n-1头可以发现,赢和输的信息是可以传递的即当i能赢k且k能赢j时,i也能赢j。输的信息同理这样我们就能找到所有能赢i的牛和输给i的牛分别记录赢原创 2017-03-07 06:58:00 · 439 阅读 · 0 评论 -
洛谷P3905 Floyd
题意:n个点,m条边,每条边有自己的权值,删除其中d条边,问重新使点A到点B联通所需要恢复的边的最小权值和这个数据范围,只和删除的边的边权有关,不删除的边只需要记录联通情况即可以删除的边做floyd搞起将原来就有的m条边边权记录下来,f中记录成0——表示两点可以联通且经过不需要代价将删除的边在f中改成边权——表示两点可以连通且经过时需要花费原边权的代价#include&l...原创 2019-09-22 19:20:59 · 416 阅读 · 0 评论