07 2020 档案
摘要:A.**[AHOI2007]**密码箱 Description 在一次偶然的情况下,小可可得到了一个密码箱,听说里面藏着一份古代流传下来的藏宝图,只要能破解密码就能打开箱子,而箱子背面刻着的古代图标,就是对密码的提示。经过艰苦的破译,小可可发现,这些图标表示一个数以及这个数 与密码的关系。假设这个数
阅读全文
摘要:扩展卢卡斯定理 前置芝士 卢卡斯定理,中国剩余定理 作用 和Lucas定理一样,只是 \(C_m^n\%p\) 中的 \(p\) 不一定是质数 结论 令 \(p=p_1^{k_1}*p_2^{k_2}*...*p_q^{k_q}\) 列出同余方程组 \[ \begin{cases}ans\equiv
阅读全文
摘要:扩展中国剩余定理 前置芝士 中国剩余定理 作用 求同余方程余数无限制的通解。 推导过程 设 \(k-1\) 个方程解为 \(x\) ,令 \(m=\prod_{i=1}^{k-1}m_i\) (**注:**此处不是乘积,而是 \(lcm(m_1,m_2,...,m_{k-1})\)) 我们有 \(x
阅读全文
摘要:扩展欧拉定理 前置芝士 欧拉定理 定义 对于a与m不一定互质的情况,有: \[ a^c~\equiv~\begin{cases}a^{c\mod\varphi(m)} &\gcd(a,m)~=~1 \\a^c &\gcd(a,m)~\neq~1~且~c~<~\varphi(m) \\ a^{c\mo
阅读全文
摘要:拓展 BSGS 前置芝士? 上个 \(BSGS\) 的没有写是因为可以水博客(大雾 作用 和 \(BSGS\) 一样,不过是 \(gcd(y,p)\not= 1\) 的情况 推导过程 \[ y^x\equiv z(mod~p) \] 令 \(d=gcd(y,p)\) 将方程改写为等式形式 \[ y^
阅读全文
摘要:求组合数(取模)的两种方法 两种公式配合Lucas定理使用更佳 Pascal公式打表 由Pascal公式,可知 \[ \begin{cases}C_n^k=C_{n-1}^{k-1}+C_{n-1}^k\\C_n^0=C_n^n=1\end{cases} \] 取二维数组 \(tC[][]\) ,初
阅读全文
摘要:前置芝士 二项式定理( 秦九韶算法( 定义 设 \(P\) 为素数,\(a, b \in N^*\) ,并且 \[ a = a_kp^k + a_{k - 1}p^{k-1} + \dots + a_1p+ a_0 \\ b = b_kp^k + b_{k-1}p^{k-1} + \cdots +
阅读全文
摘要:中国剩余定理 前置芝士 在《孙子算经》中有这样一个问题:“今有物不知其数,三三数之剩二(除以3余2),五五数之剩三(除以5余3),七七数之剩二(除以7余2),问物几何?”这个问题称为“孙子问题”,该问题的一般解法国际上称为“中国剩余定理”。 定义 中国剩余定理是一种用来求解🐖如 \[ \begin
阅读全文
摘要:欧拉定理 前置芝士 欧拉函数$\varphi(n)$ 表示 $1$~\(n\) 中与 \(n\) 互质的数的个数 数学定义如下 \[ \varphi(n)=\sum\limits_{i=1}^n[gcd(i,n)==1] \] 欧拉函数是积性函数,即对于 \(\forall n,p\),若$gcd(
阅读全文
摘要:BSGS 前置芝士 \(Baby-Step-Giant-Step\) 算法,即大步小布算法,缩写为 \(BSGS\) 作用 解决类似 \(y^x\equiv z(mod~p)\),给定 \(y,z,p>=1\) 求解 \(x\) 的问题 (普通的 \(BSGS\) 只能求解 \(gcd(y,p)=1
阅读全文
摘要:题意 略(这东西应该都能看懂) 思路 先排序,把所有e=1的操作放在前面,然后再进行e=0的操作,在进行e=1的操作的时候,我们只要把它约束的两个变量放在同一个集合里面即可。再e=0,即存在一条不相等的约束条件,对于它约束的两个变量,如果在一个集合里面,那就不可能满足!如不相等的约束条件都满足,那就
阅读全文
摘要:二维树状数组及(不会用到的)三维树状数组 前置芝士 一维树状数组(lowbit) 二维树状数组 二维树状数组涉及到两种基本操作,修改矩阵中的一个点,查询子矩阵的和 首先是修改点的操作: void update(int x,int y,int z){ //坐标为(x,y)的点增加z for(int i
阅读全文
摘要:离散化 蒟蒻因为即将学习主席树,发现离散化这个东东不太会,所以写一篇博客记录一下。 概念 离散化,就是把无限空间中有限的个体映射到有限的空间中去,以提高算法的时空效率。(来自百度百科) 作用 很多算法的复杂度与数据中的最大值有关,比如树状数组和纯用数组实现的一对一标记。时常会遇到这种情况:数据的
阅读全文
摘要:树上启发式合并/dsu on tree 前置芝士 启发式合并和树链剖分的部分知识。(不会的去这里搜) 因为要在一颗树上进行启发式合并,所以要找最优的方法,即优雅的暴力(雾 它可以让 \(O(n^2)\) 变为 \(O(n\log n)\) (证明 你就想想启发式合并就完了) 概念 树上启发式合并(d
阅读全文
摘要:树链剖分 前置芝士 就像它的名字,树链剖分是在一棵树上进行,在讲解中还会用到线段树和dfs,如果不会,打开链接自行搜索(主要是线段树的博客没做,还有不要问我为什么这算知识)。 一个节点的重儿子,为其更大的一颗子树的根节点。从这个点连向重儿子的边我们称为重边。 由重边连续连起来的点和边就组成了重链
阅读全文
摘要:启发式合并 概念 启发式算法是基于人类的经验和直观感觉,对一些算法的优化。 作用 可以启发式合并更加高级的数据结构,如 \(heap,~set,~splays\) 等 复杂度计算 每次把个数少的合并到个数多的?复杂度 \(O(min(m1,m2))\) 可是我们注意到,每次合并后个数为合并前少的部分
阅读全文
摘要:线段树合并 前置芝士 动态开点线段树和权值线段树 乍一看,线段树合并和上面那两个奇怪的东西有什么关系。 其实,线段树合并的全称为动态开点权值线段树合并( 雾 如果对上面那两个奇怪的东西不理解可点开链接进行搜索(大雾 优点 动态开点线段树有着一些优点,比如说当你让某个节点继承另一个节点的左儿子或者
阅读全文
摘要:动态开点线段树 前置芝士 众所周知,普通线段树空间复杂度是 \(O(n*4)\) 所以当n很大的时候,如果正常的去建一颗线段树,开4倍n空间显然会炸内存 怎么办呢? 这个时候,动态开点线段树出现了。 概念 动态开点线段树是一类特殊的线段树,与普通的线段树不同的是,每一个节点的左右儿子不是该点编号
阅读全文
摘要:权值线段树 前置芝士 顾名思义,权值线段树也算是一种线段树,它的本质也是线段树。所以在学习权值线段树之前,如果对普通线段树的掌握不太熟,可以先去这里去搜索线段树进行学习。 而权值线段树的进一步本质则是用线段树维护桶。同理,如果不知道桶是什么可以到这里进行搜索。 概念 我们知道,普通线段树
阅读全文
摘要:由 \(a\mod b=a-b(a/b)\) 所以 \(\sum\limits_{i=1}^n\sum\limits_{j=1}^m(n\mod i)\times(m\mod j)=\sum\limits_{i=1}^n(n\mod i)\sum\limits_{j=1}^m(m\mod j)-\s
阅读全文
摘要:题目: bzoj 1799 [Ahoi2009]self 同类分布 解析: 设 $f[loc][js][mod]$ 为第 $loc$ 位(从左往右),各位数和为 $js$ ,当前余数为 $mod$ 的数的个数 要求 $n$ 可以被各位数和整除,也就是 $n == 0 (\mod js)$ 这个题,$
阅读全文
摘要:本人太懒,一个链接足已 前人之树好乘凉 优化队列
阅读全文

浙公网安备 33010602011771号