![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 74
okouk
ACMer
展开
-
[差值排序]B装进肚子
对于每个元素,赋予其优先级,优先级越高排最前面。优先级的定义为,早上吃的比晚上吃,对整体收益更大。只需要对每个元素之间做差俩俩排序即可。原创 2022-12-29 22:56:18 · 71 阅读 · 0 评论 -
线段树开4n空间的 三句话简单的证明
线段树存储N个节点(1)假设线段树要存储的节点个数是N=2kN = 2^kN=2k 如N=4N=4N=4,那么一定是满二叉树。又因为线段树的性质其叶子节点数一定是n个。那么此时的满二叉树总节点个数为N+N/2+N/4...+1=2N−1N + N/2 + N/4 ... +1 = 2N-1N+N/2+N/4...+1=2N−1 (2)如果节点个数不是N=2kN=2^kN=2k 如N=5N=5N=5,数不一定是满二叉树,所以最后一层一定填不满。最坏情况下,最后一层的叶子节点在最右边。 (3) 对于前面的满二原创 2022-06-13 16:39:45 · 533 阅读 · 2 评论 -
<算法笔记03>动态规划
介绍 动态规划的核心将原问题视作若干个重叠子问题逐层递进,每个子问题的求解过程都构成一个”阶段"。在完成前一个阶段的以后,下个阶段根据本阶段的答案计算出新的结果。每个阶段都有利用之前阶段的答案,因此有个很好听的名字叫做状态转移。 上文的介绍看烦了吧,我们举个有趣的例子: 老王有三个孩子,王大,王二,王三,他们的年龄分别是a,b,c,老王去世了很久,年龄不再发生变化。在2021的一天,三个孩子说,我的父亲是我们三个年龄之和。那么在这一年,老王的年龄为 a+b+c,我们通过三个孩子的年龄之和计算得到了老王的原创 2021-09-12 16:31:58 · 388 阅读 · 1 评论 -
<算法笔记02>欧拉函数
算法介绍 在数论,对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目 ϕ(n)\phi(n)ϕ(n)的值为是小于等于n的正整数中与n互质的数的数目 公式 求解欧拉函数公式为 假设nnn有ttt个质因子,有如下公式 公式: ϕ(n)=n∗(1−1p1)∗(1−1p2)∗(1−1pt)\phi(n)=n*(1-\frac{1}{p_1})*(1-\frac{1}{p_2})*(1-\frac{1}{p_t})ϕ(n)=n∗(1−p11)∗(1−p21)∗(1−pt1) 证明: 根据容斥原创 2021-09-05 22:03:49 · 208 阅读 · 0 评论 -
<算法笔记01>ST表
st表 需求:输入一个序列A[n]A[n]A[n],进行qqq次查询,每次查询求[l,r][l,r][l,r]区间的最大值。 问题:暴力的求法是,每次都遍历一下,求最大值,显然这个非常慢。所以我们需要引入一个高效的数据结构。 介绍:st表根据倍增思想实现的数据结构,主要用来求解RMQ问题,O(1)O(1)O(1)的时间复杂度求出某个区间的最大值,最小值。 算法介绍 预处理 首先,我们设STMax[i][j]STMax[i][j]STMax[i][j]:从iii开始的区间长度为2j原创 2021-08-05 23:50:16 · 239 阅读 · 0 评论 -
板子板子板子
排序 单调 二分 单调栈 滑动窗口 数学 字符串 KMP 数据结构 树状数组 线段树 图论原创 2021-07-27 15:34:08 · 215 阅读 · 0 评论