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. 2017蓝桥杯算式900(C++C组)

    题目:算式900 小明的作业本上有道思考题:  看下面的算式:  (□□□□-□□□□)*□□=900  其中的小方块代表0~9的数字,这10个方块刚好包含了0~9中的所有数字.  注意:0不能作为某 ...

  2. Python 之 Json序列化嵌套类

    想要用python自已手动序列化嵌套类,就要明白两个问题: 1.Json是什么? 2.Json支持什么类型? 答案显而易见 Json就是嵌套对象 Json在python中支持列表,字典(当然也支持in ...

  3. springboot web项目创建及自动配置分析(thymeleaf+flyway)

    @ 目录 源码分析 webjars thymeleaf thymeleaf语法 springmvc 启动配置原理 集成flyway插件 springboot 创建web项目只需要引入对应的web-st ...

  4. 【python实现卷积神经网络】卷积层Conv2D反向传播过程

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

  5. SIM900A 通过RS232串口进行短信的发送。

    一.基本数据 1.SIM900A模块支持RS232串口和LVTTL串口.保留了232口,在学习或者开发时可以监听51低端单片机和模块指令执行情况,能更快的找出原因,节省开发和学习的时间. 2.此模块供 ...

  6. Redis linux 下安装

    Redis linux 下安装 下载Redis安装包,可以从Redis中文网站中下载 下载地址:http://www.redis.cn/download.html Redis4.0 稳定版本 使用&l ...

  7. Web三维编程入门总结之一:WebGL与Threejs入门知识

    /*在这里对这段时间学习的3D编程知识做个总结,以备再次出发.计划分成“webgl与three.js基础介绍”.“面向对象的基础3D场景框架编写”.“模型导入与简单3D游戏编写”三个部分,其他零散知识 ...

  8. WinForm:API

    一.WndProc:  主要用在拦截并处理系统消息和自定义消息 比如:windows程序会产生很多消息,比如你单击鼠标,移动窗口都会产生消息.这个函数就是默认的消息处理函数.你可以重载这个函数来制定自 ...

  9. 给想学python但还没有接触过的你,python代码的书写规则,小白入门

    Python 文件结构 变量命名 注释 单行注释 多行注释 缩进 Python 文件结构 #!/usr/bin/env python3 # 指定python解释器 # -*- coding: utf- ...

  10. Problem F Free Weights

    二分答案. 思路:对于二分给定的mid,即当前允许移动的最大重量,我们可以把小于改重量的标记一下,然后把没有标记的按照顺序放到另一个数组,然后判断是否满足两两相同. #include<bits/ ...