![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
最短路
只会写水题
这个作者很懒,什么都没留下…
展开
-
POJ3255(次最短路)
POJ3255题意 某街区共有R条道路,N个路口道路可以双向通行。问1号路口到N号路口的次最短路长度是多少?同一条边可以经过多次。dis数组用来求最短路 dis2数组用来求次短路思路 这道题找的是次短路而不是最短路 如果是次短路的话我们是不是需要找到每一个点的次短路 也就是再用一个dis2数组来存这个次短路 然后就不断更新他们的最短距离与此短距离 我wa了十遍的原因是swap(dis[p],dd) 没想到还有这种情况AC代码#include<iostream>#include&原创 2021-06-25 21:44:07 · 245 阅读 · 0 评论 -
洛谷P2384最短路
P2384传送门思路这道题与板子题不同的是 问的是乘积最大 但是如果是乘积最大的话看数据按照常规思路肯定会爆的 但是需要取模的你就不能确定谁的乘积很大了 如果用对数来算的话是不是就可以将乘积与加法连接起来了 比如log a +log b==loga*b 如果路径乘积大于你的话 那么是不是我的对数和也是大于你的如果知道这就好了而且还需要注意的东西是如果我们能找到最短路径的最小值 是不是根据路径回溯还可以找到路径的轨迹 找到轨迹的话你就可以把起点到终点的所有边全部乘起来取模了AC代码#in原创 2021-06-22 16:22:05 · 138 阅读 · 0 评论 -
最短路径HDU2544
写一下单源最短路径 使用堆优化 使用的是pair。我感觉这个最短路径就是只要找到比当前这个点最短的路径那么就更新它。然后在把这个点以及这个点放入优先队列中,然后逐步的这样进行,当队列为空的时候,所有点的距离就更新完毕。此时就可以找到源点到每一个点的距离了。HDU2544#include<bits/stdc++.h>using namespace std;const int maxn=1e4+5;typedef long long ll;typedef pair<int,in原创 2020-11-24 21:29:32 · 140 阅读 · 0 评论 -
HDU3790最短路径问题优先队列
传送门hdu3790这道题不仅要求最短距离而且还需要求最少路费 在更新路径距离的时候也需要对路费进行更新 只不过需要注意的一点是 当距离相同是路费最少是最优选择AC代码#include<bits/stdc++.h>using namespace std;const int maxn=1e3+7;typedef pair<int,int> pii;vector<pii>edge1[maxn];vector<pii>edge2[maxn]原创 2021-06-17 20:27:46 · 112 阅读 · 0 评论 -
HDU1874畅通工程续
传送门HDU1874最短路的堆优化版本复杂度为O(nlogn)每次从队列弹出的都是当前距离最短的点 然后AC代码#include<bits/stdc++.h>using namespace std;const int maxn=1e3;const int inf=0x3f3f3f3f;typedef pair<int,int> pii;vector<pii>edge[maxn];priority_queue<pii,vector<pi原创 2021-06-16 18:26:48 · 55 阅读 · 0 评论