算法模板
文章平均质量分 90
算法(Algorithm)是计算机学科中最具有方法性质的核心概念,描述了问题处理的方式或步骤,是程序的灵魂。该专栏总结了常见的算法模板和应用,从基础算法、数据结构、图论、数论、贪心算法、动态规划等多角度和多思想归纳算法比赛常见题型。希望对你有所帮助!
Calebbbbb
算法+Web开发
展开
-
在线查询 - 分块思想和树状数组
查询分为在线和离线两种,在离线查询中数据是不进行更改操作的,可以使用一些较为暴力的方法,但是在线查询中,由于数据也需要实时变更,需要一些更为巧妙的方法降低更改操作的复杂度。本篇博客的两个部分均为在线查询,在查询的过程中亦有更新操作,分块思想中有实时插入删除操作,树状数组中有实时更新操作,那么该如何降低更新操作的复杂度呢?原创 2024-04-26 21:34:15 · 902 阅读 · 1 评论 -
基础算法 - 快速排序、归并排序、二分查找、高精度模板、离散化数据
由于本篇博客相较而言都是算法中最基础的模板,包括快速排序、归并排序、二分、高精度加减乘除法、离散化。这些基础模板多与其他算法混合考察,这些模板是许多算法的实现基础。原创 2024-03-03 16:35:47 · 1130 阅读 · 0 评论 -
数据结构 - 哈希表(开放地址法、拉链法、字符串前缀哈希)
本篇博客将介绍哈希表的存储方式(拉链法、开放地址法),以及一类十分重要的应用字符串哈希,字符串哈希可以取代KMP功能十分强大,而且相当简化。原创 2024-03-03 10:30:29 · 1504 阅读 · 1 评论 -
数据结构 - Trie树(字符串统计、最大异或对)
本篇博客将介绍Trie树的常见应用,包括:Trie字符串统计、最大异或对。原创 2024-03-02 17:04:06 · 830 阅读 · 2 评论 -
图论 - 二分图(染色法、匈牙利算法)
本篇博客将介绍两种二分图有关的算法,分别是染色法判定二分图和匈牙利算法求二分图的最大匹配。原创 2024-03-02 16:26:57 · 956 阅读 · 0 评论 -
图论 - 最小生成树(Prime、Kruskal)
本篇博客介绍两种求最小生成树的方法:即Prime算法和Kruskal算法。Prime算法用于稠密图,也可以于Dijkstra类似用堆优化,用于稀疏图,但是稀疏图的时候求最小生成树,Kruskal 算法更加实用,所以本篇博客将不介绍堆优化的Prime算法。即:稠密图用朴素Prime算法,稀疏图用Kruskal 算法即可。原创 2024-03-02 15:42:07 · 1435 阅读 · 0 评论 -
图论 - 最短路(Dijkstra、Bellman-Ford、SPFA、Floyd)
单源:在边权正数时,稠密图用朴素Dijkstra,稀疏图用堆优化Dijkstra;存在负权边时,一般用SPFA,但是如果限制在k步内,则用Bellman-Ford。多源:只有Floyd,这个由于时间复杂度太高,在算法比赛中很少遇见。原创 2024-03-02 11:56:27 · 1531 阅读 · 0 评论 -
图论 - DFS深度优先遍历、BFS广度优先遍历、拓扑排序
本篇博客将介绍DFS-深度优先遍历、BFS-广度优先遍历和拓扑排序的常见题型(模板题及其扩展)。DFS和BFS是遍历图的两种方法,其中BFS多用于求最短路问题,在不要求最短时多用DFS,因为DFS的复杂度更低。而拓扑排序是图论中一种特殊的问题,用于求图中是否存在回路。原创 2024-03-02 10:29:00 · 1376 阅读 · 0 评论 -
数论 - 博弈论(Nim游戏)
博弈论又被称为对策论(Game Theory),既是现代数学的一个新分支,也是运筹学的一个重要学科。博弈论主要研究公式化了的激励结构间的相互作用,是研究具有斗争或竞争性质现象的数学理论和方法。博弈论考虑游戏中的个体的预测行为和实际行为,并研究它们的优化策略。原创 2024-02-20 15:33:57 · 1740 阅读 · 0 评论 -
数论 - 容斥原理
在计数时,必须注意没有重复,没有遗漏。为了使重叠部分不被重复计算,人们研究出一种新的计数方法,这种方法的基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果既无遗漏又无重复,这种计数的方法称为容斥原理原创 2024-02-20 11:28:17 · 340 阅读 · 0 评论 -
数论 - 求组合数
从a个不同元素中,任取b(b≤a)个元素并成一组,叫做从a个不同元素中取出b个元素的一个组合;从a个不同元素中取出b(b≤a)个元素的所有组合的个数,叫做从a个不同元素中取出b个元素的组合数。因为数据范围不同,编程实现求组合数的方法也有不同。该篇博客将介绍数据范围不同时,分别需要何种求法,并在最后附加一道转化二维图思想的例题。原创 2024-02-20 01:19:51 · 874 阅读 · 0 评论 -
数论 - 高斯消元
数学上,高斯消元法(或译:高斯消去法),是线性代数规划中的一个算法,可用来为线性方程组求解原创 2024-02-20 01:09:51 · 695 阅读 · 0 评论 -
数论 - 中国剩余定理(孙子定理)
孙子定理是中国古代求解一次同余式组的方法。是数论中一个重要定理。又称中国余数定理或中国剩余定理。本篇博客将阐述该定理的编程方法。原创 2024-02-17 18:34:27 · 1079 阅读 · 0 评论 -
数论 - 欧拉函数、快速幂、扩展欧几里得算法
本章博客将介绍欧拉函数、快速幂、扩展欧几里得算法的常用模板。原创 2024-02-17 17:15:16 · 911 阅读 · 0 评论 -
数论 - 质数和约数
本章博客将介绍质数和约数的常用模板,这些题目都比较简单,都可以通过暴力获取答案,但是时间复杂度较高,不符合算法比赛的要求,所以本篇博客介绍的方法都是时间复杂度低效率高的方法,并给出简化复杂度的思路。原创 2024-02-14 16:59:32 · 936 阅读 · 1 评论 -
贪心算法-排序不等式、绝对值不等式、推公式
本篇博客将讲解排序不等式(例题:排队打水)、绝对值不等式(例题:货仓选址)、推公式(例题:耍杂技的牛)原创 2024-02-02 19:44:31 · 851 阅读 · 0 评论 -
贪心算法-区间问题、Huffman树详解
本篇博客将介绍贪心常见的两种应用,即区间问题和Huffman树,在区间问题中将详解区间选点、最大不相交区间数量、区间分组、区间覆盖四个题目,在Huffman树中将详解合并果子题目原创 2024-02-02 10:46:15 · 1091 阅读 · 5 评论 -
动态规划-计数、数位统计、状态压缩、树形、记忆化搜索Dp
本篇博客介绍了几种较为困难的Dp:计数Dp,数位统计Dp,状态压缩Dp,树形Dp,记忆化搜索Dp原创 2024-01-25 21:34:31 · 1412 阅读 · 1 评论 -
动态规划-线性Dp进阶详解
最长上升子序列优化算法、最短编辑距离、编辑距离原创 2024-01-24 17:24:28 · 1048 阅读 · 1 评论 -
动态规划-线性Dp和区间Dp详解
通过题例详解线性Dp和区间Dp原创 2024-01-21 20:34:04 · 1419 阅读 · 0 评论 -
动态规划-背包问题详解
基于动态规划,对背包问题的四种情况进行详解原创 2024-01-19 20:17:21 · 1711 阅读 · 0 评论