随笔分类 -  模板

摘要:传说中的大名鼎鼎的DJB哈希(谐音?) 配套一个map使用就可以了,碰撞概率很低。 阅读全文
posted @ 2019-03-18 21:40 韵意
摘要:中国剩余定理: 求同余方程组 $x=c_i\ mod\ m_i m_i$ 两两互质的最小非负整数解。 结论: $M=\prod\limits_{i=1}^{k}m_k$ $x=\sum\limits_{i=1}^{k}c_i*\frac{M}{m_i}*inv(\frac{M}{m_i},m_i)\ 阅读全文
posted @ 2019-03-18 19:52 韵意
摘要:终于开始啃这个破东西了。 抄袭自:https://www.luogu.org/blog/Marser/solution-p3812 线性基某个问题描述: 给定n个整数(数字可能重复),求在这些数中选取任意个,使得他们的异或和最大。 简介: 线性基是一种擅长处理异或问题的数据结构.设值域为 $[1,N 阅读全文
posted @ 2019-03-18 19:33 韵意
摘要:快速幂 快速乘 费马大定理 欧拉定理 欧拉函数 积性 d(n)n的因子个数 \sigma(n) n的因子之和 这些都是积性的 狄利克雷卷积 设函数 $f(x)$ 和 $g(x)$ ,则他们的狄利克雷卷积 $f*g(x)=\sum\limits_{d|x}f(d)g(\frac{x}{d})$ 两个积 阅读全文
posted @ 2019-03-18 16:49 韵意
摘要:这个是从1开始的。 阅读全文
posted @ 2019-03-16 12:49 韵意
摘要:维护一些满足结合律又满足结合律的群,也就是交换群,与线段树不同,线段树只需要满足结合律,是幺半群。 原因在于线段树的区间操作是真正的从小区间合并上来的,但是树状数组是来源于两个前缀和作差,这就要求这个“前缀和”拥有逆元,也就是“减法”。 这样,拥有逆元运算的就可以使用树状数组维护。 单点加值,区间查 阅读全文
posted @ 2019-03-14 23:11 韵意
摘要:其实另一种计数写法对别的题目有一定的启发性,需要特别注意的是,无论哪种写法的dp结果中存的数字都是和le与ri无关的。所以在数位受限时不能取用计算过的dp值,也不能更新dp值,不受限的情况可以重复利用。 无注释版: 一个更简单的模板,去掉了很多奇奇怪怪的东西,比如前导0,前导0的确应该特殊考虑而不能 阅读全文
posted @ 2019-03-14 00:01 韵意
摘要:#include #include #include #include using namespace std; const int MAXN = 1e6+1e3; //待筛的区间[L,R]长度 const int N = 50001;//保证大于(2^31-1)的算数平方根 bool prime[MAXN]; bool seive[N]; typedef long long ll;... 阅读全文
posted @ 2019-03-09 19:38 韵意
摘要:https://blog.csdn.net/sunshinezff/article/details/47720171 阅读全文
posted @ 2019-03-09 11:19 韵意
摘要:https://www.cnblogs.com/flashhu/p/8324551.html 阅读全文
posted @ 2019-03-09 11:13 韵意
摘要:https://blog.csdn.net/sslz_fsy/article/details/81303003 阅读全文
posted @ 2019-03-09 11:02 韵意
摘要:一道例题,给定一串数字,求每连续k个数字的最大、最小值。 思路:初始化一个初始长度为k的单调队列,按从左到右加入元素,同时满足这个队列中的元素是递减的(也就是假如某个数被两个距离不超过k的大于他的数夹着,他会被从队尾调出队列)。得到最大值。 向右移动一格,假如队首离开范围,出队。往队尾加入元素前,把 阅读全文
posted @ 2019-03-08 23:33 韵意
摘要:二维树状数组涉及到两种基本操作,修改矩阵中的一个点,查询子矩阵的和。 首先是修改点: 然后是查询前缀和: 那么由容斥原理: 区间修改就麻烦一点: 方法1: 方法2: 阅读全文
posted @ 2019-03-04 20:57 韵意
摘要:令 $f[i][j]$ 表示 $i$ 的 $2^j$ 辈祖先, $f[i][0]$ 就表示 $i$ 的父节点。 可以得到状态转移方程 $f[i][j]=f[f[i][j-1]][j-1]$ 。当没有 $2^j$ 辈祖先时 $f[i][j]=0$ 一遍 DFS 计算即可 查询 先往上2进制跳到同深度, 阅读全文
posted @ 2019-03-04 20:13 韵意
摘要:KMP - 一对一 计算next数组的方法是对于长度为n的匹配串,从0到n-1位依次求出前缀后缀最大匹配长度。 下面的写法是仅仅检测有没有匹配然后返回第一个匹配位置,而不是返回所有匹配位置。 字典树 - 一对多 其实Trie也叫做前缀树。 基本性质 1,根节点不包含字符,除根节点意外每个节点只包含一 阅读全文
posted @ 2019-02-28 22:21 韵意
摘要:之前一直都没有想清楚整数的二分到底是要打算怎么搞。 首先约定二分的区间为 $[l,r]$ 闭区间。 看一下下面这个实现,由于我们的约定,所以l与r都要取能取到的(合法的)值。 之前为什么会觉得边界条件是 $l$ 和 $r$ 相差为1,其实边界条件是 $l$ 和 $r$ 重合。其上一步的条件是 $l$ 阅读全文
posted @ 2019-02-27 00:42 韵意
摘要:还是抄别人的好: https://www.cnblogs.com/candy99/p/6360536.html 阅读全文
posted @ 2019-02-09 01:23 韵意
摘要:https://blog.csdn.net/myjs999/article/details/81022546 阅读全文
posted @ 2019-01-27 23:19 韵意
摘要:1.要从必胜或必败的局面反推 2.SG函数 只要当前状态可以转移到的状态中有一个是败态,那么当前状态就是胜态。胜态为N。 如果当前状态可以转移到的所有状态都是胜态,那么当前状态就是败态。败态为P。 sg函数为每个状态赋一个自然数的值,这个值为除这个状态的后继外的最小自然数。首先定义mex(minim 阅读全文
posted @ 2019-01-27 23:15 韵意
摘要:heap,也就是堆,作为常用的优先队列的替代品,其实还是有优越性的。 make_heap(v.first(),v.end(),cmp()) 把容器调整成堆。 push_heap(v.first(),v.end(),cmp()) 在容器本身是堆,往容器的end中插入后,把end后移,再调用这个。 po 阅读全文
posted @ 2019-01-25 14:25 韵意