Key word:

    ①最短路

    ②传递闭包:大小关系 数值关系 先后关系 联通关系

    ③floyd变形

    ④实现方式:插点发法

    ⑤思想:动态规划

1.最短路:

最短路是floyd的一个基本应用,但是对于不是裸题的最短路该怎么使用是我们要关注的,其次什么时候使用也是要注意的,至于什么时候使用Floyd,首先先看数据量,三重循环始终是Floyd不可避免的,所以200的点是极限,小于两百的时候,就要考虑,这个最短路如果考察Floyd那么他一定有坑,或者改变问的方式及在floyd过程中的处理操作,这里放到3,简单的有求一条最短路,最短路经过边需要花费,经过节点也需要花费,这时候就需要稍稍处理,复杂的也会有很多提问方式,要敏感,因为floyd的很多特性是其他最短路所没有的,多源最短路,关系的传递性这里放到2,例如给出最短路,在原图中删去一些边是使得给出最短路仍是最短路,因为Floyd动态规划的特性,他具有能够遍历所有的状态的特点,所有他能够找到任何边判断能否被松弛,这里是被替换。所以掌握好Floyd是做题的关键。

2.传递闭包:

这里是对关系的传递,这点用起来很舒服,比如汇率问题,求一种货币能经过若干次兑换变成更多的自己,这里的话我们考虑,dis[i][j]为i与j的汇率,那么松弛时则有dis[i][k]* dis[k][j]与dis[i][j]比较大小,这个时候Floyd传递的不再是数值关系,而是大小关系,这也算是最短路的变形,最大乘积路(?)。

3.Floyd 变形:

刚才也举了很多例子了,他们都是属于Floyd变形,至于为什么拿出来说是因为Floyd不可能考裸体(实在想考,那也没办法),考的都是变形题目,那么怎么变形很成问题,所以怎么变形,怎么去找题意是解决问题的关键,出题人的想法千奇百怪,你真的想不到他会怎么考你,所以做到所有的floyd是不现实的,即使floyd不难,但是我们还是通过题目找到了规律,所有的题目的考察都是根据2,4,5所改造的,那么理解4,5是解题关键。

4、5.这里一起说一下,动态规划思想在这里是最小化的枚举各种松弛情况,可以理解为区间DP相似的思想,也就是说关于I J之间的关系,可以通过floyd解决,在就是插点法,在两点外插入点以获得松弛操作,比如在一个图中,给你几条边让你添加到图中使得起点终点距离最小,这就是插点,插点更新距离即可。

这是我的总结,有不太对的地方,希望可以指出,共同进步。

图论--Floyd总结的更多相关文章

  1. [图论]Floyd 算法小结

    Floyd 算法小结  By Wine93 2013.11 1. Floyd算法简介 Floyd算法利用动态规划思想可以求出任意2点间的最短路径,时间复杂度为O(n^3),对于稠密图, 效率要高于执行 ...

  2. 图论·Floyd算法·HDU2544&1874 (伪)2066

    在看到1874的题时,第一反应是用上一篇的并查集方法,后来查了一下是要用Floyd做,所以就去查Floyd算法的资料. 即插点法,是一种用于寻找给定的加权图中顶点间最短路径的算法. 核心代码:  ma ...

  3. [笔记-图论]Floyd

    用于可带负权的多源最短路 时间复杂度O(n^3) 注意一定不要给Floyd一个带负环的图,不然就没有什么意义了(最短路不存在) 模板 // Floyd // to get minumum distan ...

  4. 图论——Floyd算法拓展及其动规本质

    一.Floyd算法本质 首先,关于Floyd算法: Floyd-Warshall算法是一种在具有正或负边缘权重(但没有负周期)的加权图中找到最短路径的算法.算法的单个执行将找到所有顶点对之间的最短路径 ...

  5. 【uva 10048】Audiophobia(图论--Floyd算法)

    题意:有一个N点M边的无向带权图,边权表示路径上的噪声值.有Q个询问,输出 x,y 两点间的最大噪声值最小的路径的该值.(N≤100,M≤1000,Q≤10000) 解法:N值小,且问多对点之间的路径 ...

  6. 【uva 247】Calling Circles(图论--Floyd 传递闭包+并查集 连通分量)

    题意:有N个人互相打了M次电话,请找出所有电话圈(Eg.a→b,b→c,c→d,d→a 就算一个电话圈)并输出.(N≤25,L≤25,注意输出格式) 解法:由于N比较小所有n^2或n^3的复杂度都没有 ...

  7. mathematical method

    mathematical method 曲线拟合 指数 \(lnY = lna + bX\) 对数 \(Y = blnX + a\) 幂函数 \(lgY=lga+blgX\) 多元线性回归模型 回归分 ...

  8. NOIp知识集合 By cellur925

    基本算法 快速幂 ll ksm(ll a,ll b) { ll ans=; while(b) { ) ans=ans*a%p; b>>=; a=a*a%p; } return ans; } ...

  9. CSP-S需备模板大全

    CSP-S需备模板大全 谨以此文祝愿自己\(CSP-S\,\,2019\,\,\color{red}{RP++!!}\) 算法 二分 while(l<r) { int mid=(l+r+1)&g ...

随机推荐

  1. C++ stringstream(强制类型转换)

    #include <iostream>#include <string>#include <sstream>using namespace std;int main ...

  2. webstorm 永久激活方法

    打开终端,执行: cd /etc/ sudo vim hosts 在最后一行加上: 0.0.0.0 account.jetbrains.com 打开webstorm,选择Activation Code ...

  3. json文件操作

    1.把字典或list转换成字符串方法 json.dumps() 2.把字符串转换成字典方法 json.loads() 3.indent 存储文件时每行加缩进数 4.ensere_asci 文件中有中文 ...

  4. [一起面试AI]NO.9 如何判断函数凸或非凸

    首先定义凸集,如果x,y属于某个集合M,并且所有的θx+(1-θ)f(y)也属于M,那么M为一个凸集.如果函数f的定义域是凸集,并且满足 f(θx+(1-θ)y)≤θf(x)+(1-θ)f(y) 则该 ...

  5. 【python实现卷积神经网络】padding2D层实现

    代码来源:https://github.com/eriklindernoren/ML-From-Scratch 卷积神经网络中卷积层Conv2D(带stride.padding)的具体实现:https ...

  6. python操作MySQL数据库报错问题解决

    编写好Python操作数据库的脚本后,运行报错如下: 报错1:“AttributeError: 'NoneType' object has no attribute 'encoding'” 解决办法: ...

  7. 数据结构与算法--二分搜索(binary search)

    前言 之前面试准备秋招,重新翻起了<编程之美>.在第三章节看到了一道关于二分搜索的讨论,觉得有许多细节是自己之前也没怎么特别注意地方,比如二分搜索的初始条件,转化.终止条件之类的. 问题 ...

  8. js 一维数组,转成嵌套数组

    // 情况一: // 数据源var egs = [ {name_1: 'name_1...'}, {name_2: 'name_4...'}, {name_3: 'name_3...'}, {name ...

  9. Python初学者常见错误问题汇总

    1.在客户端和服务端如何传递数组? 答:在客户端和服务端可以使用json进行数据传输.在客户端把数据转换成json字符串,然后使用POST方法发送给服务端. 服务端收集到数据之后,使用json.loa ...

  10. 今天,VS Code 五岁了。

    时光飞逝,岁月如梭.今天,VS Code 迎来了 5 岁的生日. 回想起 VS Code 发布的那一天,仿佛还在昨天. 回顾 VS Code 这五年的发展,总是能给我们开发者带了无限的惊喜. 2015 ...