图论--Floyd总结
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总结的更多相关文章
- [图论]Floyd 算法小结
Floyd 算法小结 By Wine93 2013.11 1. Floyd算法简介 Floyd算法利用动态规划思想可以求出任意2点间的最短路径,时间复杂度为O(n^3),对于稠密图, 效率要高于执行 ...
- 图论·Floyd算法·HDU2544&1874 (伪)2066
在看到1874的题时,第一反应是用上一篇的并查集方法,后来查了一下是要用Floyd做,所以就去查Floyd算法的资料. 即插点法,是一种用于寻找给定的加权图中顶点间最短路径的算法. 核心代码: ma ...
- [笔记-图论]Floyd
用于可带负权的多源最短路 时间复杂度O(n^3) 注意一定不要给Floyd一个带负环的图,不然就没有什么意义了(最短路不存在) 模板 // Floyd // to get minumum distan ...
- 图论——Floyd算法拓展及其动规本质
一.Floyd算法本质 首先,关于Floyd算法: Floyd-Warshall算法是一种在具有正或负边缘权重(但没有负周期)的加权图中找到最短路径的算法.算法的单个执行将找到所有顶点对之间的最短路径 ...
- 【uva 10048】Audiophobia(图论--Floyd算法)
题意:有一个N点M边的无向带权图,边权表示路径上的噪声值.有Q个询问,输出 x,y 两点间的最大噪声值最小的路径的该值.(N≤100,M≤1000,Q≤10000) 解法:N值小,且问多对点之间的路径 ...
- 【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的复杂度都没有 ...
- mathematical method
mathematical method 曲线拟合 指数 \(lnY = lna + bX\) 对数 \(Y = blnX + a\) 幂函数 \(lgY=lga+blgX\) 多元线性回归模型 回归分 ...
- NOIp知识集合 By cellur925
基本算法 快速幂 ll ksm(ll a,ll b) { ll ans=; while(b) { ) ans=ans*a%p; b>>=; a=a*a%p; } return ans; } ...
- CSP-S需备模板大全
CSP-S需备模板大全 谨以此文祝愿自己\(CSP-S\,\,2019\,\,\color{red}{RP++!!}\) 算法 二分 while(l<r) { int mid=(l+r+1)&g ...
随机推荐
- 细数Java项目中用过的配置文件(YAML篇)
灵魂拷问:YAML,在项目中用过没?它与 properties 文件啥区别? 目前 SpringBoot.SpringCloud.Docker 等各大项目.各大组件,在使用过程中几乎都能看到 YAML ...
- 【图机器学习】cs224w Lecture 7 - 节点的表示
目录 Node Embedding Random Walk node2vec TransE Embedding Entire Graph Anonymous Walk Reference 转自本人:h ...
- ubuntu core文件
ubuntu开启core 检查是否开启core ulimit -c //0表示没有开启 开启core ulimit -c unlimited sudo sh -c 'echo 1 > /proc ...
- Android内存优化—dumpsys meminfo详解
原创置顶 不死鸟JGC 最后发布于2018-12-24 14:19:28 阅读数 3960 收藏展开dumpsys 介绍Dumpsys用户系统诊断,它运行在设备上,并提供系统服务状态信息 命令格式: ...
- sorted排序的两个方法 - Python
在给列表排序时,sorted非常好用,语法如下: sorted(iterable[, cmp[,key[,reverse]]]) 简单列表排序,很容易完成,sorted(list)返回的对象就是列表结 ...
- java中的模运算规则
取模运算定义 如果a和d是两个自然数,d非零,可以证明存在两个唯一的整数 q 和 r,满足 a = qd + r 且0 ≤ r < d.其中,q 被称为商,r 被称为余数. 运算实例 java模 ...
- 纯css画三角形
纯css画三角形与border元素相关 设置border的属性 width: 100px; height: 100px; border-style: solid; border-width: 100p ...
- pytorch 文本情感分类和命名实体识别NER中LSTM输出的区别
文本情感分类: 文本情感分类采用LSTM的最后一层输出 比如双层的LSTM,使用正向的最后一层和反向的最后一层进行拼接 def forward(self,input): ''' :param inpu ...
- GraphicsLab Project 之 Curl Noise
作者:i_dovelemon 日期:2020-04-25 主题:Perlin Noise, Curl Noise, Finite Difference Method 引言 最近在研究流体效果相关的模拟 ...
- 2020年必须掌握的硬核技能k8s
Kubernetes 是一个软件系统,使你在数以万计的电脑节点上运行软件时就像 所有节点是以单个大节点一样, 它将底层基础设施抽象,这样做同时简化了应用开发.部署,以及对开发和运维团队的管理. Kub ...