推式子小技巧
Posted cx233666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推式子小技巧相关的知识,希望对你有一定的参考价值。
推式子小技巧
标签(空格分隔): 数学
先讲一些万金油
- 交换求和顺序,这个很(naive)。
- 式子可以随意提到与其无关的枚举项前后,这个也很(naive)。
- 算贡献思想,这个非常重要,一般需要一点个人能力,只要转化前后每一项被算的次数一样就可以
- 熟记常见结论,对模数敏感一点,该卷积的就卷起来用多项式,该反演的反演,该容斥的容斥。
- 还要一些灵感啊(QAQ)
卷积
这个我玩的不怎么熟,只会常见形式。
[sumlimits_{i=1}^{n}f(i)g(n-i)]
没错你碰见什么式子尽量拆成只与(i)和只与(n-i)有关系的函数就可以了,基本上就是卷积。
[sumlimits_{i=1}^{n}f(i)g(i+d)]
这个嘛,你把(g)数组(reverse)一下,使得(g^{'}(n-i-d)=g(i)),然后又可以卷了。
组合数学
这个我也不熟,随便鬼扯一点。
- 看到模数是质数又和组合数有关,先想能不能用(lucas)优化推理过程,如这道题。
- 基本上所有的扩展数论算法都基于把模数分成(prod p_i^{a_i})然后对每个(p_i^{a_i})分别处理。
- 遇到一些特殊的计数(dp)找性质,利用数量相等的关系推转移方程,如卡农、地精部落、地形生成。
- 该二项式反演的就二项式反演,两种形式记清楚
- (f(k) = sumlimits_{i = k}^{n} (-1)^{i}inom{i}{k}g(i) Leftrightarrow g(k) = sumlimits_{i = k}^{n} (-1)^{i} inom{i}{k}f(i))
- (f(k) = sumlimits_{i = k}^{n} inom{i}{k}g(i) Leftrightarrow g(k) = sumlimits_{i = k}^{n} (-1)^{i - k} inom{i}{k}f(i))
- 然后主要就是容斥,容斥的本质就是减掉多算的,让每个数变成它该算到的次数。
- 叉姐的标准容斥形式,设(B_i)表示第(i)件坏事发生的概率,那么(n)个坏事都不发生的概率,可以通过(2^n)个同时发生的概率计算,({S|B_iin S})的容斥系数是((-1)^{|S|})。
筛法
这个我还是不熟,又要随便扯一点。
- 线性筛还不会的可以退役了。
- 埃式筛有时候有奇效,(min\_25)差不多就是个埃式筛的过程
- 看数据范围行事,(le 10^6)基本上是埃式筛,(le2*10^7)之类就要线性筛了,$le 10^{10} $~(10^{11})杜教和(min\_25)准没错,再大了,就要看灵感了。
- 积性函数是非常非常非常重要的!
- 判断一个函数是不是积性的,先看是不是基本函数,再根据函数定义判断是不是积性函数,实在不行,两个积性函数的狄利克雷卷积函数是积性的,还不能判断那我也没办法了。
- 看到一个函数(f(p)),看它是不是积性的,如果是,那基本上能线筛,只要能快速求(f(p))和(f(p^k))就能线筛,如果不是积性函数,那也可能有一些和线筛过程有关的性质,于是有可以线筛。如此题就是线筛非积性函数的栗子。
- (min\_25)筛的原理一定要理解,用它可以干一些与最小质因子(第一步魔改),最大次大质因子(第二步魔改),特定质因子(都要魔改)等毒瘤问题。
- 杜教筛是可以有神仙操作的,没事可以试试拿常见的一些函数去卷,毕竟任何积性函数卷任何积性函数结果还是积性函数。如循环之美。
常见结论
[sum_{d|n}mu(d)=[n=1] sum_{d|n}varphi(d)=n (varphi*e)=(mu*I) sum_{d=1}^nsum_{i=1}^nsum_{j=1}^m[gcd(i,j)==d] =sum_{d=1}^nsum_{i=1}^{lfloorfrac nd
floor}sum_{j=1}^{lfloorfrac md
floor}[gcd(i,j)==1] =sum_{d=1}^nsum_{i=1}^{lfloorfrac nd
floor}mu(i)lfloorfrac n{id}
floorlfloorfrac m{id}
floor]
咕咕咕
以上是关于推式子小技巧的主要内容,如果未能解决你的问题,请参考以下文章
luoguP3676 小清新数据结构题 推式子(LCT维护)