- 博客(8)
- 收藏
- 关注
转载 树状数组
树状数组常数比线段树小很多啊……还好写……有必要总结一下。单点修改,区间查询不废话,代码:#include <cstdio>using namespace std;int q,x,y;int n,m,a[500005],c[500005];void update(int x,int k){ while(x<=n) c[x]+=k, x+=x&am...
2019-09-08 19:20:00
110
转载 多重背包
本文参考dd_engi的《背包问题九讲》。状态转移方程 \[f[i][j]=\max{\begin{Bmatrix} f[i-1][j-k \times w[i]]+k \times v[i] | 0 \leqslant k \leqslant m[i] \end{Bmatrix} } \]对于朴素的做法,将每种物品拆分成\(m[i]\)个01背包进行求解,但复杂度高达\(O(V \s...
2019-09-01 23:33:00
128
转载 快速线性筛
快速线性筛可以使我们能够在线性时间内筛出特定区间内的素数。代码的基本思路是,开两个数组num[x]和prime[x],其中前者记录\(x\)是否为素数,后者记录第\(x\)个素数。遍历给定的区间,对于当前考虑的数\(x\),先判断num[x]上的记录,如果是素数则加入prime数组中。然后在把这个数分别乘以prime数组上的素数,将这些积也标记为合数,如果碰到x%prime[j]==0...
2019-08-30 09:43:00
162
转载 关于斐波那契数列的诸多公式
本篇是专门记录斐波那契数列性质的笔记。在本篇文章中,我们约定\(f_n\)为斐波那契数列的第\(n\)项,并且\(f_0=0\)。这些公式中,有些是证明的,有些未证明,并且是否补坑看心情。 (其实是太菜不会证首先,利用事实\(f_n=f_{n+2}-f_{n+1}\)得到\[\sum\limits_{k=1}^{n}{f_k}=\sum\limits_{k=1}^{n}{(f_...
2019-08-28 13:31:00
566
转载 ST表
ST算法(Sparse Table,又称稀疏表、ST表)是用来解决RMQ问题的一种算法。RMQ(Range Minimum/Maximum Query)问题是询问区间最值的一种问题。ST表的实质是利用倍增思想的动态规划。相较于朴素的暴力\(O(n)\)做法,ST表可以做到\(O(n\log n)\)时间的预处理,\(O(1)\)时间的查询,是解决这类问题最快的算法,但不支持在线修...
2019-08-28 13:27:00
95
转载 压位高精度模板
不走程序,直接上板子。第一个板子压四位,支持带符号的加减乘。第二个板子压九位,支持不带符号的四则运算和取模。都封装了。#include <iostream>#include <cstdio>#include <cstring>using namespace std;struct intX{ static const int ...
2019-08-28 13:25:00
265
转载 基数排序&堆排序
基数排序按照各个数字位数进行排序,分为LSD(最低位优先)和MSD(最高位优先)两种。复杂度为\(O(d(n+k))\),其中\(d\)为最大位数,\(n\)为排序数量,\(k\)为基数的种数。#include <iostream>#include <algorithm>#include <cstring>using namespace st...
2019-08-28 11:46:00
208
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人