随笔分类 - 模板
摘要:树的直径及其性质 参考: "树的直径及其性质与证明" ①直径两端点一定是两个叶子节点 ②距离任意点最远的点一定是直径的一个端点,这个基于贪心求直径方法的正确性可以得出 ③如果第一棵树直径两端点为$(u,v)$,第二棵树直径两端点为$(x,y)$,用一条边将两棵树连接,那么新树的直径一定是$u,v,x
阅读全文
摘要:"递归实现指数型枚举" 状态压缩: 分别遍历每一个状态即可。
阅读全文
摘要:"最短Hamilton路径" 利用动态规划可以很好地解决这个问题。 $dp[i][j]$中 i 利用状态压缩,可以表示已经走过了多少个点,j 表示的是当前所在点。
阅读全文
摘要:快速乘 参考: "小技巧1——长整型:64位整数的乘法模运算" 当 a 和 b 都大于1e9的时候,为了防止溢出,就需要一个算法,叫做快速乘。 实现方法一: 将乘法转换为加法,并且伴随着取模操作的进行,可以保证不会溢出。 而为了加速加法操作,可以利用快速幂的思路,对加法操作进行优化,复杂度为$O(l
阅读全文
摘要:矩阵快速幂 矩阵快速幂可以作为一种优化技巧,当知道第$i+1$项和第$i$项之间的递推式的时候,可以将其转化为矩阵运算,然后用矩阵快速幂进行优化。尤其适用于,要求第 n 项的值,而 n 很大的时候。
阅读全文
摘要:$O(m^3log(n))$求斐波那契数列 利用这个递推式:$\begin{pmatrix}F_{n+2}\\F_{n+1}\end{pmatrix}=\begin{pmatrix}1 & 1\\1 & 0\end{pmatrix}\begin{pmatrix}F_{n+1}\\F_{n}\end{
阅读全文
摘要:证明图形为中心对称图形 ①有偶数个点 ②所有第 i 个点和第 n/2+i 的中点的位置都一样
阅读全文
摘要:分块 数据: 初始化: 区间查询: 区间更新和区间查询差不多,有些时候需要用一个 来进行整块区间的加减操作。
阅读全文
摘要:逆序对 所求的交换次数等价于满足$ia_j$的$(i,j)$的数对的个数(这种数对的个数叫做逆序数)。 可以利用树状数组来求解逆序对的问题
阅读全文
摘要:ST表 在$O(30 n)$的复杂度内建ST表 查询复杂度为$O(log(n))$ 模板求的是区间最大值,如果需要求最小值,只需要把 改为 即可。
阅读全文
摘要:坐标离散化 在一些数据范围很大,但是又只需要保存一些直线的情况下,不需要把整个地图都记录下来,只需要把直线及其前后行列保存即可。这样数据范围最多为$6n 6n$。n 为直线条数。 测试数据:
阅读全文
摘要:超大背包问题 输入条件:$1\le n\le40,1\le w_i,v_i\le10^{15},1\le W\le 10^{15}$ 解法:因为不能够再像前面的背包问题一样,把背包容量作为状态来储存了,因为开不了那么大的空间,那么就应该好好利用 n 很小的这个优势,但是如果全部遍历的话,复杂度就是$
阅读全文
摘要:"4 Values whose Sum is 0" 如果直接暴力枚举的话,其复杂度为$O(n^4)$,这是必然超时的。 但是如果把这四个序列分成两半,通过遍历一半,而到另外一半去进行二分查找的话,复杂度就可以降为$O(n^2log(n))$。 cpp // Created by CAD on 202
阅读全文
摘要:"Physics Experiment" 这个题的关键就在于理解这个弹性碰撞,多个球之间的碰撞可以理解为是互不影响的,可以当作是擦身而过而不是相撞,最后再将其排个序即可。
阅读全文
摘要:二进制表示集合 空集: 只有第 i 个元素的集合: 向集合中加入第 i 个元素:`S|1 枚举$\{0,1,...,n 1\}$的所有子集: 枚举 sup 的所有子集: 枚举$\{0,1,...,n 1\}$的所有子集大小为 k 的集合的方法: ① 的值就是将其最低位的1独立出来后的值 ② 就是将
阅读全文
摘要:思路: 知道什么东西在变化,什么东西没有变化。 关于超时(cf上大概能跑1e8): 写之前先算算复杂度,如果$n^2$超时了,那可以考虑一下$nlog(n)$,用二分可以降低复杂度 当可以由一个东西或者两个东西确定另外一个东西的时候,我们最优办法是直接得到我们要的东西,然后看总量中是否存在这样一个东
阅读全文
摘要:欧拉函数和欧拉定理 参考: "欧拉函数" 欧拉函数: 欧拉函数,即$\varphi(n)$,表示的是小于等于$n$和$n$互质的数的个数。 比如$\varphi(1)=1$。 利用唯一分解定理,我们可以把一个整数唯一地分解为质数幂次的乘积, 设 $n=p_1^{k_1}p_2^{k_2}...p_s
阅读全文
摘要:区间筛法 对$[2,\sqrt{b}]$进行埃氏筛法的同时对区间$[a,b]$进行筛选
阅读全文

浙公网安备 33010602011771号