随笔分类 - 学习笔记
摘要:Description 给定一棵树,点带点权,允许修改点权,求每次修改之后树的最大独立集 Solution ddp用LCT维护 前置知识(静态树的最大独立集问题) 首先,我们要明确静态树的最大独立集的解法 定义$f[i][0/1]$表示在以$i$为根的子树中,该节点选/不选的最大权值,那么有状态转移
阅读全文
摘要:Description 给定若干个形如$x\equiv a_i \pmod {b_i}$的同余方程,其中b不保证两两互质,求最小非负整数解x Solution 扩展中国剩余定理的模板题。 假定我们已经求出了前k-1个方程的一个解为x 并且记$M=\prod\limits_{i=1}^{k-1}{b_
阅读全文
摘要:模板题在这里 卢卡斯定理适用于求解组合数取模,而且模数为质数且不大的情况。 具体地,卢卡斯定理可以这样表示 $$C_n^m\mod p=C_{n/p}^{m/p}*C_{n\mod p}^{m\mod p}\mod p$$ 我们首先预处理出一个阶乘数组,一个mod p的逆元数组,当数值较小时,我们可
阅读全文
摘要:Description Treap是一种简单的平衡树,可以实现插入元素,删除元素,求元素的排名,求排名为某某的元素,查询前驱后驱 treap的本质是一棵二叉搜索树。然而,二叉搜索树很容易使复杂度退化,所以我们在每个节点上产生一个随机值,按照堆的性质维护,这样treap的深度期望为logn。 在本题中
阅读全文
摘要:众所周知,乘法逆元可以通过Exgcd和费马小定理求解,如果我们在题目中需要预处理连续的一段数的逆元,我们需要更高效的算法求解。 1.线性递推求解乘法逆元 首先,我们声明在下列计算中同余均是在模p意义下 我们可以简单计算1-1≡1 考虑任意正整数i,假定i-1的逆元已经正确计算,我们递推方程的计算过程
阅读全文
摘要:众所周知,扩展欧几里得算法(下文统称Exgcd)能求解二元一次方程的整数解,乘法逆元、线性模方程等。本文我将简单的介绍该算法。 形如ax+by=gcd(a,b) 的方程,我们可以用Exgcd求出其最小整数解。我们考虑如何求解。 当b=0时,方程右边的值为a,那么显然可得x=1,y=0。 现在假设当前
阅读全文
摘要:欧拉函数是指对于正整数x,小于或等于x的数中与x互质的数的数量,通常用φ(x)表示。 我们先看一道例题 对题意进行分析,可以得到最小生成树中的两个直接连通的点的gcd一定是1,我们要统计最小生成树的个数,也就是求1~n每个数的欧拉函数值之和。 因此,对于一个正整数x,我们需要计算欧拉函数φ(x)。
阅读全文
摘要:模板来源:codevs 5429 根据背包问题的相关状态转移方程,我们不难写出朴素的算法 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 using namespace s
阅读全文
摘要:第一部分:(参考百度百科) 一、STL简介 STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和 David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C+
阅读全文