【最短路】题型小总结
来源:互联网 发布:0信誉淘宝店 编辑:程序博客网 时间:2024/05/16 17:31
最短路算法大家都很清楚了,比较常用的有dijkstra、SPFA、floyd
板题
有N个点,M条边,求S到T的最短路
直接套dijkstra板
最短路计数
统计最短路条数
加一个way[]数组统计,每次更新dist时,way[to]=way[u]
当dist相等时way[to]+=way[u]
打印最短路
借助一个pre[]数组,与计数处理方式类似
双权最短路
先以优先权值求出最短路的所有路径,再从路径中查找出第二权值最小的路径
权值相乘的最短路
那就把权值相加改为相乘
求路径上最大值最小的路径
将松弛操作改为取最小值操作
dist[to]=min(dist[to],max(dist[u],edge[k].w));
带负权最短路
套SPFA板
第K短路
启发式搜索【A*】
往返最短路
正反图都跑一次最短路
破坏路径最短路
随机破坏一条路径,求最坏情况下的最短路
如果有影响破坏的路径一定在原先最短路上,先求出路径,再对每一条边分别拆掉跑一次最短路
封锁海域问题
有N个点依次排布在一个平面上,平面有左边界和右边界,求最少给每个点多大的范围,才能使这些点将平面分隔开
主要是构图:
对于每两个点之间连一条边,权值为两点距离和一半,然后左右边界分别向每个点连一条边,权值为点到边界距离
然后跑一次从左边界到右边界的最大权值最小的最短路就好了√
物品合成问题
有N种物品各有价值,其中某些可以两两合成另一个物品,求合成某个物品所需最小价值
看似和最短路没有联系,实际上有着最短路的思想:
先令dist[i]为第i个物品的价值
每次取出价值最小且未访问过的物品,尝试用它和其他物品组合来减小其他物品的dist
最终每个物品的dist就是最小价值
差分约束系统
这玩意要单独拿出来讲。。。。先不写先。
最小密度路径
求出任意两点间 路径权值和/路径数 最小的路径
floyd算法
令dist[i][j][L]表示从i->j经过L条路径的最短路
然后四重循环:
for(L 2->N)for(k 1->N)for(i 1->N)for(j 1->N)if(i!=j&&j!=k&&i!=k&&dist[i][j][L]>dist[i][k][L-1]+dist[k][j][L-1])dist[i][j][L]=dist[i][k][L-1]+dist[k][j][L-1];
阅读全文
0 0
- 【最短路】题型小总结
- HDU 2544 最短路-最短路总结
- 最短路总结
- 最短路算法总结
- 最短路总结
- 最短路算法总结
- HDU最短路总结
- 最短路总结
- 最短路总结
- 最短路自学总结
- 最短路总结
- 最短路问题总结
- 最短路模板总结
- 最短路算法总结
- 最短路算法总结
- 最短路总结
- 最短路算法总结
- 最短路算法总结
- subline text3 安装Emmet
- 如果上天再给我一次机会,我会这样学Java
- Java并发编程:volatile关键字解析
- 2017秋季当水墨邂逅油彩答案单元测试答案
- 字符串排序
- 【最短路】题型小总结
- android开发环境搭建
- linux下安装mysql和mysql主从配置
- 构造函数和一般函数的区别
- Java用SFTP实现上传下载功能
- 2、DES加密算法
- log4j2入门教程(一)简介(xml文件配置)
- dubbo工作原理
- 浅学Gson