笔记
文章平均质量分 58
clearlove༇
这个作者很懒,什么都没留下…
展开
-
树链剖分笔记
什么是树链剖分?树链剖分有什么作用? 字面意思,就是把一颗树拆成几个链,这些链上的节点序号是连续的,那么对于树上的路径的一些问题就可以转化为区间问题,就可以用熟悉的一些数据结构来维护了 一些需要知道的定义 重/轻 儿子:对于父节点来说,他的儿子节点中size最大的就是重儿子其他都是轻儿子,如果所有儿子节点size都相同,那么任意选一个作为重儿子 重/轻边父节点与他重儿子连的边是重边,其余是轻边 重/轻链,重边连起来的就是重链 推出的性质 1.如果u与v是一条轻边,那么size[v]*2<size[u]原创 2021-11-04 15:07:40 · 179 阅读 · 1 评论 -
初涉组合数
组合数 CNMC_{N}^{M}CNM 二项式定理(a+b)n=∑i=0n\sum_{i=0}^n∑i=0nCniC_{n}^{i}Cniaib(n-i) 证明: 1.数学归纳法(就不进行这个方法的证明了) 2.展开为(a+b)∗*∗(a+b)∗*∗…∗*∗(a+b),对于每一项只有两个选择是a或者b,当我们假定选择了i个a时,就需要选择n−-−i个b,然后根据组合数,只需要选择任意i个a的组合就可以,得证 一些简单的性质 1.CNMC_{N}^{M}CNM=n(n−1)...(n−m+1)m(m−原创 2021-10-21 23:31:39 · 171 阅读 · 0 评论 -
每日一题QAQ
cf736D 思路:a%m=n同时b%m=n(m>=2)可以推出gcd(a,b)!=1 可以直接双指针来做,不过可能代码会写出锅 由于数组是静态的不会变化,可以考虑使用st表来维护 代码: #include <bits/stdc++.h> #define ll long long using namespace std; const int N = 2e5 + 10; ll c[N], a[N]; ll f[N][65]; int t, n; void init(int n) {原创 2021-08-21 00:35:21 · 99 阅读 · 0 评论