【最短路】题型小总结

来源:互联网 发布: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];




原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 无限流量怎么办没有4g 海外直邮身份证过期了怎么办 买车的人不过户怎么办 天猫精灵球泡离线怎么办 花呗被骗了2万怎么办 天猫公司变更地址发票怎么办 支付宝自助解限怎么办 支付宝16岁限额怎么办 支付宝提不了现怎么办 支付宝余额受限需要身份证怎么办 微信被骗了6000怎么办 被代运营骗了该怎么办 淘宝店铺过节放假无人打理怎么办 淘宝店太久没打理出现未开店怎么办 淘宝店关了售后怎么办 发货运单号发错了怎么办 天猫积分为零怎么办 山东聊城小型车脱审一年怎么办? 廉租房如果夫妻离婚怎么办 淘宝客服不给退货怎么办 天猫客服打字慢怎么办 京东买的kindle坏了怎么办 欧巴怎么办韩语怎么写 聚划算淘宝口令打不开怎么办 道聚城白银礼包下架怎么办 聚星输了很多钱怎么办 弹力运动裤被烟烧了个洞怎么办 生完宝宝胯宽怎么办 黑色纯棉裤子洗的发白怎么办 金盾保险柜密码忘了怎么办 装修好的房子漏水怎么办 刚装修的房子墙面开裂怎么办 刚装修的房子有味道怎么办 代销产品规格填写不完整怎么办 我的信息被泄露怎么办 进入不良网站手机发信息怎么办 发不良信息被停机了怎么办 手机qq登录显示被冻结怎么办 qq账户被冻结了怎么办 qq钱包账户被永久冻结怎么办 怎么办转让费还没给我