摘要:离散化可以将无限空间内的有限点映射到有限空间内。 在求解问题过程中涉及元素之间的 相对顺序 时可用离散化。 Code: 阅读全文
posted @ 2019-11-10 10:09 Cyanigence 阅读(104) 评论(0) 推荐(0) 编辑
摘要:[TOC] 一、中位数问题 1. 问题模型 数轴$x$上有$n$个点,现在给出这$n$个点的坐标$a "i" $,让你选择一个点$k(k\in [1,n])$,使得每个点到点$k$的距离之和最小。 2. 结论 点$k$为序列的中位数时最优: 若n为奇数,点$k$位于a[(n+1)/2]处最优;若n为 阅读全文
posted @ 2019-11-09 22:14 Cyanigence 阅读(300) 评论(0) 推荐(0) 编辑
摘要:[TOC] 一、Floyd算法 如何求任意两点最短路?我们可以运行n次SPFA或Dijkstra求得, 而Floyd算法能在$O(N^3)$的时间复杂度内求出图中任意两点的最短路(多源最短路),且代码十分简短。 的本质是动态规划。设$f(k,i,j)$表示"由若干个编号不超过k的节点中转后"从$i$ 阅读全文
posted @ 2019-11-09 16:29 Cyanigence 阅读(1155) 评论(0) 推荐(0) 编辑
摘要:[TOC] 一、BFS法判负环 Code: 三、SPFA判正环 1. 由原来的最短路改为最长路 2. 将权值变为原来的相反数并跑最短路判负环 阅读全文
posted @ 2019-11-06 17:29 Cyanigence 阅读(90) 评论(0) 推荐(0) 编辑
摘要:[TOC] 一、最小生成树的相关知识 1. 树的性质 树实际上是图的特殊形态, 对于任意一张无向连通图$G=(V,E)$,其中$n=|V|,m=|E|$。 该图为树时的性质: 1. |E|=|V| 1 2. 图中无环 3. 图连通 4. 任意两点有且仅有一条简单路径 5. 删除任意一条边后该图不连通 阅读全文
posted @ 2019-11-06 11:11 Cyanigence 阅读(453) 评论(0) 推荐(0) 编辑
摘要:[TOC] 一、定义 给定一颗有根树,若节点z既是节点x的祖先,也是节点y的祖先,则称z是x,y的公共祖先。在x,y的祖先中,深度最大的一个节点称为x,y的最近公共祖先(Least Common Ancestors),记做LCA。 如图:LCA(5,7)=2;LCA(3,8)=1;LCA(6,10) 阅读全文
posted @ 2019-11-05 11:07 Cyanigence 阅读(404) 评论(0) 推荐(1) 编辑
摘要:##一、关于树链剖分 你的好盆友最近抛给你这样一个难题~~(无中生友)~~: " 一棵树由n个节点,每个节点都有一个权值w,现在想让你对这棵树完成下列操作: 1.把节点u的权值改为t 2.询问节点u到节点v的权值和 3.节点u到v的最大值 " 你看了看题目,发现这就是树链剖分的板子题... 好吧,那 阅读全文
posted @ 2019-11-04 16:47 Cyanigence 阅读(127) 评论(0) 推荐(0) 编辑
摘要:[TOC] 一、关于线段树 线段树(Segment tree)是一种可以完成区间操作的二叉树结构,其应用范围较树状数组更广。 线段树采用分治思想,每一个节点都代表一个区间,一棵完整的线段树除去最后一层深度为$O(logN)$,由于最底层非空,因此数组需要开到$4N$(静态线段树)。 如果线段树的内部 阅读全文
posted @ 2019-11-03 23:25 Cyanigence 阅读(79) 评论(0) 推荐(0) 编辑
摘要:##一、ST算法 ST算法(Sparse Table Algorithm)是用于解决RMQ问题(区间最值问题,即Range Maximum/Minimum Question)的一种著名算法。 ST算法能在复杂度为$O(NlogN)$的预处理后,以$O(1)$的复杂度在线处理序列区间内的最大值/最小值 阅读全文
posted @ 2019-11-03 11:18 Cyanigence 阅读(126) 评论(0) 推荐(0) 编辑
摘要:[TOC] 一、关于并查集 1. 定义 并查集(Disjoint Set)是一种可以动态维护若干个不重叠的集合,并支持 合并 与 查询 两种操作的一种数据结构。 2. 基本操作 1. 合并(Union/Merge)[^note]: 合并两个集合。 2. 查询(Find/Get): 查询元素所属集合。 阅读全文
posted @ 2019-10-31 22:10 Cyanigence 阅读(10170) 评论(0) 推荐(9) 编辑
摘要:[TOC] 一、总述 0/1分数规划是专门解决 的一种算法~~(废话)~~。所以说0/1分数规划模型是什么呢?给定整数{$a_1,a_2,a_3,...,a_n$},{$b_1,b_2,b_3,...,b_n$}从中选出若干对数,使得它们各自和的比值最大。公式如下: $$\frac{\sum_{p= 阅读全文
posted @ 2019-10-30 17:43 Cyanigence 阅读(165) 评论(0) 推荐(0) 编辑
摘要:同余最短路在我们做题中很少出现,是属于比较冷门的一种算法。当题目中出现例如“给定m个整数,求这m个整数能拼凑出多少的其他整数(这m个整数可以重复取)”,以及“给定m个整数,求这m个整数不能拼凑出的最小(最大)的整数”的话时我们可以考虑同余最短路的方法。 例1: "P3403 跳楼机" 我们考虑操作2 阅读全文
posted @ 2019-10-30 10:28 Cyanigence 阅读(1023) 评论(0) 推荐(1) 编辑
摘要:[TOC] 当我们在进行四则运算的时候,如果需要处理的数据范围超过正常的数据类型,为了保证答案的正确性可以使用高精度算法。 高精度算法就是在模拟我们进行四则运算的过程。 ~~不要试图指望 这种东西,用了也无卵用并且gcc也不支持。~~ 在了解高精度算法之前,先让我们了解一些小知识: 1. 如何将字符 阅读全文
posted @ 2019-10-29 15:23 Cyanigence 阅读(203) 评论(0) 推荐(0) 编辑
摘要:[TOC] 贪心算法是每次选举决策时保证当前状况最优(局部最优)策略的算法。因此在使用贪心时需要保证整体最优解可以由局部最优解导出。 贪心算法的使用通常需要证明,以下为几种常见的证明方法: 1. 邻项交换: 在任意局面下,任何元素位置的改变都会影响当前局面的改变。该方法NOIP曾有涉及。 对局面元素 阅读全文
posted @ 2019-10-29 00:19 Cyanigence 阅读(160) 评论(0) 推荐(0) 编辑
摘要:折半搜索也是深搜的一种,当搜索的规模太大的时候,我们可以考虑将一次搜索分为两次小规模的搜索,再将这两次搜索的答案合并起来就能产生随后的答案。 下面结合例题讲解: 例题: "P5194 [USACO05DEC]Scales 天平" 分析: 题目范围$n\leq 1000$,由于题目规定“这一行中从第3 阅读全文
posted @ 2019-10-28 21:07 Cyanigence 阅读(228) 评论(0) 推荐(0) 编辑