单源最短路
文章平均质量分 60
单源最短路
超级码力奥
这个作者很懒,什么都没留下…
展开
-
单源最短路:昂贵的聘礼 虚拟源点 有长度限制
原题链接:https://www.acwing.com/problem/content/905/ 考察点:超级源点,有长度限制的最短路 相似题意: 某天超市搞活动,小明想买一个自己一直想买的电脑,平时需要7000,小明觉得太贵了。但活动当天,超市里的商品可以通过买其他商品获得优惠券。例如买一个键盘然后买电脑只需要5000,如果买一个鼠标买电脑只需要4000。同理,买其他商品也有这样的优惠活动。但商场出于某种目的,给每一件商品都标了等级,如果买了低于某个等级的商品,就不能够再买某些高级商品。 为了方便,商店原创 2022-03-16 12:19:23 · 77 阅读 · 0 评论 -
单源最短路:最优乘车
题意抽象:每条公交线路是单向的。从起点出发,到终点,最少需要换成多少次。 思路:如果目的是换乘次数最少。那么其实在一条公交路线上,从起点到任何一个点的权重都是一样的。然后建图其实是最复杂的。前边的点,都需要指向后边的点,权重都还是一样。 最终的换乘次数就是起点到终点的距离-1. 如果不需要换乘,那么结果就是0。 #include<iostream> #include<cstring> #include<algorithm> #include<sstream>.原创 2022-03-16 12:16:15 · 155 阅读 · 0 评论 -
单源最短路:Dijsktra,堆优化,Bellman-ford,SPFA
图论之单源最短路 0x3f 0x3f3f3f3f 的区别? memset 按字节赋值,所以memset 0x3f 就等价与赋值为0x3f3f3f3f, 1. Dijkstra int g[N][N]; //为稠密阵所以用邻接矩阵存储 int dist[N]; //用于记录每一个点距离第一个点的距离 bool st[N]; //用于记录该点的最短距离是否已经确定 int Dijkstra() { memset(dist, 0x3f,sizeof dist); //初始化原创 2022-03-16 12:10:21 · 402 阅读 · 0 评论