摘要: 某些毒瘤的DP经常要依靠数学优化。转移状态成环的就可以靠高斯消元解出方程。例题:bzoj 3143 bzoj 3720 一些DP转移某一维奇大无比。在不能消减状态的情况下可以考虑转换转移方程,证明出来他关于这维为某多项式(证不出来打表也大差不差)然后使用拉格朗日插值来快速求解。例题:bzoj4559 阅读全文
posted @ 2020-06-08 16:49 Atoner 阅读(130) 评论(0) 推荐(0) 编辑
摘要: \(n= \sum_{d|n} \phi(d)\) 根据因数分类可证得,欧拉反演 \(\phi(n) = \sum_{d|n} d \mu(\frac{n}{d})\) 卷积可得,十分基础 \(e(n)=\sum_{d|n}\mu(d)\) 这就是单位元而已,更基础了 \(b_k=\sum_{i=k 阅读全文
posted @ 2020-06-08 16:32 Atoner 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 用线段树可以维护区间最大值的后缀和,值得一提的技巧是可以在合并两个快的时候向一个块下面递归,然后信息就可以合并了。但是时间复杂度由于每次合并都要向下递归,所以多出一个log。 众多树形数据结构都可以启发式合并,包括AC自动机也可以。具体做法是新建log快ACA,每当两块大小相同时就合并。复杂度log 阅读全文
posted @ 2020-06-08 16:27 Atoner 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 一道神仙LCT题,思路清奇的一批。并且一些维护改变了我对LCT之前比较浅薄单一的认知,实在是一道启发心智的好题。同时这题因为不能迅速的维护很多状态,所以不能使用makeroot来改变树的结构,以免引起错误。所以基础模板也有别于普通模板。大部分的题解都注释在代码里了,应该还好。未完待续 #includ 阅读全文
posted @ 2020-06-08 16:22 Atoner 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 一个很水但是很有用的结论: \(C_m^n=C_m^{n-m}\) 当柿子不好联想组合意义时可以试一下转换 一个水结论但用处挺多: \(kC_n^k=nC_{n-1}^{k-1}\) 上面两个证明直接下降幂定义展开下就结了 范德蒙德卷积(考虑组合意义易得) \(\sum_{i=0}^k C_n^i 阅读全文
posted @ 2020-06-08 16:21 Atoner 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 联通分量全家桶 内容有: 点双联通分量 边双联通分量 强联通分量 上述三种的缩点 基础应用: 2-SAT 圆方树 作者很憨憨,2年都没有完全分清楚这3种的区别。但好像这种题蛮多的,所以开个坑补一补。 首先说一下三种联通分量的区别: 无向图:点双和边双 有向图:强连通分量 首先是强连通分量: 在有向图 阅读全文
posted @ 2020-06-08 16:20 Atoner 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 因为作者又懒又菜还健忘,所以要整理一下模板。 SA char c[N]; int n,m,height[N],sa[N],rk[N],a[N],b[N],d[N]; void doubling(){ rep(i,1,n) b[a[i]=c[i]]++; //b数组是桶,a[i]是第i个元素的第一关键 阅读全文
posted @ 2020-06-08 16:16 Atoner 阅读(388) 评论(0) 推荐(0) 编辑