当齿轮开始转动———— ####第一日,主要内容为最短路相关算法: 从上至下依次对应算法为: 1、SPFA求最长路及判正环 2、分段弗洛伊德 3、思维(乘法转加法)+朴素迪杰斯特拉 4、暴力+朴素迪杰斯特拉 5、朴素迪杰斯特拉的最短路计数(SPFA也行) 6、BFS+堆优化迪杰斯特拉 7、BFS # ...
分类:
其他好文 时间:
2021-07-01 16:52:37
阅读次数:
0
Aimee 很水的题目 只要把P1144改一下 需要注意的是这个题有重边,求方案数的话一定要去重!! 这就涉及到很有趣的问题。 要想成为顶尖高手 就要做到滴水不漏 --橙汁哥 从这个题我才知道我写的堆优化Dijkstra复杂度有问题 TLE起飞 #include<iostream> #include ...
分类:
其他好文 时间:
2020-10-29 09:31:04
阅读次数:
14
双端队列广搜 1. 算法分析 双端队列广搜算法只适用于边权只有0和1的情况,本质上是对dijkstra堆优化版本的再次优化。由于dijkstra堆优化版本每次要把最小值从队头拿出,然后更新其他值后插入队列。而当边权只有0和1时,当处理的边权为0,那么更新完仍然为最小值,直接放入队头;为1则插入队尾。 ...
分类:
其他好文 时间:
2020-07-27 13:40:39
阅读次数:
68
朴素Dijkstra算法 时间复杂是 O(n^2+m), n 表示点数,m 表示边数 适合稠密图 #include<cstring> #include<iostream> #include<algorithm> #define mm(a,x) memset(a,x,sizeof(a)) #defin ...
分类:
编程语言 时间:
2020-07-04 11:50:16
阅读次数:
88
dijkstra+堆优化: P4779 【模板】单源最 code: #include<bits/stdc++.h> using namespace std; const int N=3e5; int n,m; int s,x,y,w; int head[N]; int dis[N]; bool vi ...
分类:
其他好文 时间:
2020-07-03 12:11:33
阅读次数:
57
#include<iostream> #include<cstdio> #include<queue> using namespace std; int dis[200001],head[200001]; int n,m,a,b,c,s,cnt; bool vis[200001]; struct e ...
分类:
其他好文 时间:
2020-06-23 21:35:40
阅读次数:
59
一、JML语言的理论基础 JML概述 JML(Java Modeling Language)是用于对Java程序进行规格化设计的一种表示语言。 一般而言,JML有两种主要的用法:(1)开展规格化设计。这样交给代码实现人员的将不是可能带有内在模糊性的自然语言描述,而是逻辑严格的规格。(2)针对已有的代 ...
分类:
其他好文 时间:
2020-05-22 22:55:02
阅读次数:
73
算法简述 SPFA算法其实是bellman-ford算法的队列优化形式,不再是简简单单的进行n-1次松弛,而是使用队列,能使路径变短(dist[y] > dist[x] + 1)且不在队列里的节点才入队进行松弛。 SPFA算法与Dijkstra算法的堆优化实现形式差不多,都是使用邻接表的方式。 代码 ...
分类:
编程语言 时间:
2020-05-16 21:02:59
阅读次数:
88
题目 https://www.luogu.com.cn/problem/P1144 题目分析 注意相同距离的最短路径条数的判断!(使用数组!) 代码 Dijkstra+堆优化 #include<iostream> #include<cstdio> #include<algorithm> #inclu ...
分类:
其他好文 时间:
2020-05-16 20:42:07
阅读次数:
92
Dijkstra算法 由于我之前一直记的迪杰斯特拉的翻译导致我把dijkstra写成了dijstra……所以下文#define dijstra dijkstra Dijskra是用来在有向图或者无向图中寻找任意两个点的最小距离的算法。它相较于spfa不会死掉(spfa死了),但是无法处理带负环的图和 ...
分类:
其他好文 时间:
2020-05-14 22:32:12
阅读次数:
91