「不会」莫比乌撕函数
Front:做第二个专题的时候,出现了一个弱智的盲区
显然是正确的,是按照d比x多出的质因子集合进行容斥的。
「yydgcd」
设$$f(s)=\sum\limits_{k\in prime} \mu(\frac{s}{k})$$
则可以埃筛求出\(f()\),然后取前缀和,然后整除分块
「数表」
设\(f(x)=\sum\limits{k|i}k\)
为积性函数,可以线筛
考虑p的次幂被加入的次数
然后
则可以将询问离线,从小到大解决所有的g,复杂度nlogn
「DZYlovesmath」
考察\(F(s)=\sum\limits_{k|s} f[k]*\mu(\frac{s}{k})\),当\(\mu(\frac{s}{k})!=0\)时,\(f[k]\)只有\(f[s],f[s]-1\)两种取值
考察\(f[s]*\sum\limits_{k|s}\mu(k)=f[s]*[s==1]\),一定为0
设\(s的质因子中次数为f[s]的集合为M\),由于\(f[k]==f[s]-1\),\(\frac{s}{k}\)中必然包含M中所有元素一次且仅一次
枚举其它因子包含在\(\frac{s}{k}\)中的数量,设s含有的质因数共c种
是一行组合数奇加偶减的形式,当\(c-|M|>0\)时显然为0
否则\(F(s)=-(-1)^{|M|}=(-1)^{|M|+1}\)
于是愉快地线性求出了\(F()\),其余整除分块处理。
「约数个数和」
注意一个事实
考虑\((i*j)\)的约数d中每个质因子p的次数c_d,设\((i*j)\)中的次数为\(c_t\),\(i\)中的次数为\(c_i\)
规定若\(c_d<=c_i\),则x中p的次数为\(c_d\),y中不含p这一因子,则会作出应有的一个贡献
若\(c_d>c_i\),则x中不含p这一因子,y中含p的次数为\(c_d-c_i\),也会作出应有的一个贡献
质因子之间互相独立,故上式正确
「数字表格」「于神之怒加强版」「jzptab」的推导过程与上边几个十分相似..而且要更简单一点
「一个人的数论」
自然数幂和拆成组合数和伯努利数,由
原式变为
\(\sum\limits_{j|n}\mu(j)j^{i-1}\)为积性函数,可以对每个质因子快速算出并相乘得到n的函数值
而外层d枚举即可
「GuGuFish」
我说这题目名怎么这么耳熟原来我去一家重庆咕咕鱼吃过鱼。。。
那么把柿子搞开
设\(f(n)=\prod\limits_{p|n\&p\in Prime} \frac{p}{p-1}\),那么这个函数可以线筛,我们先不管他
设\(F(n)=\sum\limits_{g|n}f(g)*\mu(\frac{n}{g})\),考察这个函数,设其有平方因子\(p^2\),根据\(\frac{n}{g}\)中p的次数分情况讨论
\(!(p|\frac{n}{g})\),设此时\(\sum\limits_{g|n}f(g)*\mu(\frac{n}{g})=Val\)。
\(p|\frac{n}{g}\&!(p^2|\frac{n}{g})\),易知这一部分的\(g\)中仍含有p因子,即\(f(g)\)不变
而\(\mu(\frac{n}{g})\)中全部增加了p这一因子,变为相反数,则\(\sum\limits_{g|n}f(g)*\mu(\frac{n}{g})=-Val\)
\(p^2|\frac{n}{g}\),则\(\mu(\frac{n}{g})=0\)
则\(F(n)=Val+(-Val)+0=0\),得到结论:若\(\mu(n)==0\)则\(F(n)==0\)
此时\(F()\)函数可以用线筛非常简单地求出了,再加上整除分块就行了
「TrickGCD」
利用调和级数,开值域桶,枚举+组合数求方案数,用Front求解。
「Battlestation Operational」
先把柿子套路展开,然后发现只需要处理函数\(f(n)=\sum\limits_{i=1}^n \sum\limits_{j=1}^i \lceil \frac{i}{j} \rceil\)再上整除分块就行了
也就是\(h(n)=\sum\limits_{i=1}^n \lceil \frac{n}{i} \rceil\)的前缀和
向上取整很别扭,我们先求向下取整的\(g(n)=\sum\limits_{j=1}^i \lfloor \frac{n}{i} \rfloor\)
可以递推,n增加1后,所有结果不会变小,除了不变的,会有\(d(n)\)个被除数由于成为了n的因子而使商增加1
得到\(g(n)=g(n-1)+d(n)\),只差最后一步将\(g\)转化为\(h\)了
由于\(\lceil \frac{a}{b}\rceil=\lfloor \frac{a-1}{b}\rfloor+1\)
故\(h(n)=\sum\limits_{i=1}^n \lfloor \frac{n-1}{i}+1 \rfloor\)
完美。
「GCD of Sequence」
考虑枚举d计算序列gcd是d的倍数的方案数,然后用Front求解
值不是d的倍数的位置必须替换,选择有\(\lfloor \frac{n}{d} \rfloor\)种
其余任意替换,但不能替换成自己,选择\(\lfloor \frac{n}{d}-1 \rfloor\)种乘上组合数。
「bookshelf」
一些神奇的结论。
1.\(gcd(fib(i),fib(i+1))==1\)
\(\begin{aligned}\\
gcd(f(i),f(i+1))&=gcd(f(i),f(i)+f(i-1))\\
&=gcd(f(i-1),f(i))\\
&=...\\
&=gcd(f(1),f(2))=1
\end{aligned}\)
2.\(gcd(fib(i),fib(j))==fib(gcd(i,j)),(i>j)\)
\(\begin{aligned}\\
gcd(f(i),f(j))&=gcd(f(i-1)+f(i-2),f(j))\\
&=gcd(2f(i-2)+f(i-3),f(j))\\
&=gcd(3f(i-3)+2f(i-4),f(j))\\
&=gcd(f(j)f(i-j+1)+f(j-1)f(i-j))\\
&=gcd(f(j-1)f(i-j),f(j))\\
&=gcd(f(i-j),f(j))\\
&=...\\
&=gcd(f(i\%j),f(j))\\
&=f(gcd(i,j))
\end{aligned}\),
3.\(gcd(2^i-1,2^j-1)=2^{gcd(i,j)}-1,(i>j)\)
\(\begin{aligned}\\
gcd(2^i-1,2^j-1)&=gcd(2^{i-j}(2^j-1)+2^{i-j}-1,2^j-1)\\
&=gcd(2^{i-j}-1,2^j-1)\\
&=...\\
&=gcd(2^{i\%j}-1,2^j-1)\\
&=2^{gcd(i,j)}-1\\
\end{aligned}\)
用各种性质qj化一下柿子,只需要对每个d求\(gcd(cnt_i)==d\)的方案数就好了
到这里用组合数乱搞就行了
「Neko and function」
设函数\(f(n,k)\)为把n依次除以k个不为1的数变为1的方案数,不同除数不同顺序算不同方案
给定k求它前n项的和,\(n<=2^30\)
为了方便把不为1的限制去掉,设\(g(n,k)\)为可以为1
枚举除数的哪些位置不为1
由于\(g(k)=\sum\limits_{i=1}^k C_k^if(i)\)
\(f(k)=\sum\limits_{i=1}^k (-1)^{k-i}C_k^ig(i)\)
这是二项式反演qwq
根据g的定义,\(g(n,k)=\sum\limits_{d|n} g(d,k-1)\)
然后就可以杜教筛前缀和..递归30层,每层长的一样,复杂度\(30*n^{\frac{2}{3}}\)