C++算法学习(Acwing)
一天一个算法或模型,体验编程的快感
ChiCrown
普通的码农一枚
展开
-
C++算法(Acwing)学习(持续更新中)---双向BFS(双向广搜)和A-Star(A*)
A*算法---从起点到终点的最短距离(启发函数)适用于数据范围较大。保证当终点出队时是最小值(但是不保证中间的某个点出队时是最小值)除了存真实距离值外(从起点到当前点的真实距离)还要存一个估计距离(从终点到当前点的估计距离)每次挑一个预测距离+真实距离最短的点扩展。需满足条件---估计的距离<=真实距离(从当前点到终点)基本步骤:(有点像dijkstra(形式上))t<-优先队列的对头(小根堆)dijkstra可看作所有估价为0的A*算法。1.首先将bfs中的队列都换成优先队列。1.BFS 在入队时判重。原创 2024-04-28 21:32:36 · 194 阅读 · 0 评论 -
C++算法(Acwing)学习(持续更新中)---BFS中的多源最短路-双端队列
(很经典的一道题,可以多敲几遍)原创 2024-04-23 17:56:00 · 193 阅读 · 1 评论 -
C++算法(Acwing)学习(持续更新中)---高精度
补充一个洛谷P1009 阶乘之和的题(用算法基础课的模板写的)原创 2024-04-19 21:00:00 · 157 阅读 · 1 评论 -
C++算法(Acwing)学习(持续更新中)---单源最短路问题的简单应用
1)边权均非负:朴素dijkstra算法(稠密图),堆优化dijkstra算法(稀疏图)---------堆优化dijkstra算法(稀疏图)O(mlogn) m表示遍数。---------朴素dijkstra算法(稠密图)O(n*n) n表示点数。2)有负权边:bellman-ford,spfa(99%)多源最短路----Floyd算法----O(n*n*n)--------SPFA O(m),最坏O(nm)单源最短路的常见解题思路。原创 2024-04-19 12:50:52 · 114 阅读 · 1 评论 -
C++算法(Acwing)学习(持续更新中)---最短路模型(BFS)
因为所有边的权重都为1,所以可以用bfs来求解。最短路模型(bfs)原创 2024-04-18 21:45:59 · 122 阅读 · 1 评论 -
C++算法(Acwing)学习(持续更新中)---快排和归并排序
【代码】C++算法(Acwing)学习(持续更新中)---快排和归并排序。原创 2024-04-16 17:18:42 · 108 阅读 · 0 评论 -
C++算法(Acwing)学习(持续更新中)---并查集
并查集的应用主要有以下几点:1.合并两个集合 2.查询某个元素的祖宗节点合并两个集合Acwing836.合并集合相关练习Acwing1250.格子合并观察题意:发现我们要判断画完线后有没有围成环而如果能围成一个环,那么最后画的线的两个端点必然已经在一个连通块内判断是否在一个连通块————使用并查集算法步骤如下:如果两个端点已经在同一个集合(find操作),那么成环如果两个端点不在同一个集合内(find操作),那么这两个集合连通,合并两个集合Acing 1252 搭配购买我们对Markd原创 2024-04-15 22:53:20 · 686 阅读 · 0 评论 -
C++算法(Acwing)学习(持续更新中)---Flood Fill
Flood Fill 算法可以在线性时间复杂度内,找到某个点所在的连通块。Flood Fill 洪水覆盖问题。八连通是公共点,四连通是公共边.----统计每个连通块里的个数。小知识----数组模拟队列。-----统计连通块的数量。深搜(dfs)可能会爆栈。----每个连通块的类型。原创 2024-04-17 21:59:11 · 213 阅读 · 1 评论