标签:证明 text _id shu ati 无法 otp 三角形 mit
标签(空格分隔): 数学 生成函数 多项式 笔记
比以前讲的多了很多,其中补充了多项式求逆和\(\ln\)
生成函数一般用于统计\(\text{size}=n\)的数量
如下图每个节点\(\text{size}=1\)被称为\(\text{atom}\)
\(e.g.\)
\(A(x)B(x)\equiv 1\pmod {x^n}\)
\(A(x)B(x)-1\equiv 0\pmod {x^n}\)
\((A(x)B(x)-1)^2\equiv 0\pmod {x^{2n}}\)
\(A(x)(2B(x)-B(x)^2A(x))\equiv 1\pmod {x^{2n}}\)
问题转为父问题,迭代\(log\)次即可,一个
\(T(n)=O(n\lg n)+T(n/2)=O(n\lg n)\)
inline void Inv(re int a[],re int b[],re int n){
re int i,len;b[0]=qpow(a[0],mod-2);static int t[N];memset(t,0,n<<2);
for(len=4;len<=n;len<<=1){
memcpy(t,a,(len>>1)<<2);
Getrev(len);NTT(t,len,1),NTT(b,len,1);
for(i=0;i<len;++i)b[i]=Modup(((b[i]<<1)-1ll*t[i]*b[i]%mod*b[i])%mod);
NTT(b,len,-1);
memset(b+(len>>1),0,(len>>1)<<2);
}
}
设\(A(x)=1+\sum\limits_{i\ge 1}a_ix^i\)(注意常数项不为1的多项式无法求导)
\(\displaystyle{\ln(A(x))=\int \ln(A(x))'=\int \frac{A(x)'}{A(x)}}\)
就是一个多项式求导+积分+求逆
inline void derive(re int a[],re int len){re int i;for(i=1;i<len;++i)a[i-1]=1ll*i*a[i]%mod;a[len-1]=0;}
inline void intgral(re int a[],re int len){re int i;for(i=len;~i;--i)a[i+1]=1ll*a[i]*inv[i+1]%mod;a[0]=0;}
inline void Ln(re int a[],re int b[],re int len,re int n){
re int i;Inv(a,b,len);derive(a,n);Getrev(len);
NTT(a,len,1),NTT(b,len,1);
for(i=0;i<len;++i)b[i]=1ll*a[i]*b[i]%mod;
NTT(b,len,-1);intgral(b,n);
memset(b+n,0,(len-n)<<2);
}
用来解决无标号计数问题
对组合对象\(A\)
\(\displaystyle{F(x)=\sum_{a\in A}x^{size(a)}=\sum_{i}Aa_ix_i}\)
其中\(a_i\)表示组合对象中\(size=i\)的元素个数
记\([x^n]F(x)\)为\(F(x)\)中\(x_n\)的系数
定义两个集合的笛卡尔积为
\(A*B=\{(a,b)\mid a\in A,b\in B\}\)
表示\(A,B\)集合的有序拼接
\(\displaystyle{C(x)=A(x)B(x)=\sum_{a\in A}\sum_{b\in B}x^{size(a)+size(b)}}\)
可以转为枚举\(size\)形式的多项式乘法,证明了生成函数的乘积是组合对象有序拼接
\(\large{\mathtt{BSOJ4763}}\):模板
偶数 \(<1,0,1,0,1,0>\Rightarrow F(x)=\frac{1}{1-x^2}\)
\(3\)的倍数 \(<1,0,0,1,0,0>\Rightarrow F(x)=\frac{1}{1-x^3}\)
\(4\)的倍数 \(<1,0,0,0,1,0>\Rightarrow F(x)=\frac{1}{1-x^4}\)
0或1个\(<1,1,0,0,0,0>\Rightarrow F(x)=\frac{1}{1-x}-\frac{x^2}{1-x}\ =\frac{1-x^2}{1-x}=1+x\)
不超过一个(同上)\(<1,1,0,0,0,0>\Rightarrow F(x)=\frac{1-x^2}{1-x}=1+x\)
0,1或2个\(<1,1,1,0,0,0>\Rightarrow F(x)=\frac{1}{1-x}-\frac{x^3}{1-x}\ =\frac{1-x^3}{1-x}\)
0,1,2或3个\(<1,1,1,1,0,0>\Rightarrow F(x)=\frac{1}{1-x}-\frac{x^4}{1-x}\ =\frac{1-x^4}{1-x}\)
奇数 \(<0,1,0,1,0,1>\Rightarrow F(x)=\frac{x}{1-x^2}\)
根据乘法原理累乘得\(F(x)=\frac{x}{(1-x)^4}=(1-x)^{-4}*x\)
首先二项式展开\(\displaystyle\)
\[F(x)=x\sum_{i=0}^∞\binom{3+i}{i}x^i \\=\sum_{i=0}^∞\binom{3+i}{i}x^{i+1} \\=\sum_{i=1}^∞\binom{2+i}{3}x^i\]
所求\([x^n]F(x)=\binom{2+n}{3}\)
\(\large{(无来源)骨牌计数:}\)\(i\)有\(a_i\)个求和为\(n\)的方案数
\(1\)个骨牌就是\(\mathtt{atom}\),设每个数(骨牌)的EGF为\(A(x)=\sum\limits_i a_ix^i\)则最后拼出结果即计数对象可由若干个\(\mathtt{atom}\)有序拼接构成,有前面可知,这种拼接就是乘法
\[F(x)=\sum_{i=0}^{\infty} A^i(x)=\frac{1}{1-A(x)}\]
这被称作一个\(\mathtt{atom}\)的生成序列记做\(SEQ(A(x))\)
\(\large无来源平面树:\)求\(n\)个节点有根儿子有序树个数\(\large\mathtt{/BSOJ4758}\):求\(n\)个节点有根二叉树的叶子结点期望
这两道题专门开一篇
\(\large\mathtt{BSOJ4370}\):求\(n\)个数中任选三个数组成三角形的概率
\(\large\mathtt{BSOJ4705}\):求\(n\)个正整数任取\(1,2,3\)个的和的每个可能取值的方案数
设本题\(\text{size}\)为和
\(A/B/C(x)\)表示同一个斧头重复一/二/三次价值为\(x\)的斧头个数
对\(A^2(x)\),会产生\((x_i,x_i)\)同一把斧头的贡献,所以定义\(B(x)\)为同一个斧头重复两次的方案数,那么\(A^2(x)-B(x)\)就是两把斧头时真正的贡献,又因为与顺序无关,所以还要除以\(2\)
然后\(A^3(x)\)的话,可能会有一把斧头重复两次或三次,如果重复两次,那么就是\((x_i,x_i,y_i),(x_i,y_i,x_i),(y_i,x_i,x_i)\),就是\(3A(x)B(x)\),但是减去这个的话又会把\((x_i,x_i,x_i)\)的情况多减去两次,所以定义\(C(x)\)为同一把斧头重复三次的生成函数,于是还要加上\(2C(x)\),然后无关顺序的话还要除掉\(3!=6\)
综上,最终的答案的EGF为\(F(x)=A(x)+\frac{A^2(x)-B(x)}{2}+\frac{A^3(x)-3A(x)B(x)+2C(x)}{6}\)
有时候,对象的每个\(\mathtt{atom}\)之间是存在区别的
给每个\(\mathtt{atom}\)标号,这样就能表示两个\(\mathtt{atom}\)之间是有区别的
这是一个例子
有标号对象是和无标号对象相对应的。
每个有标号对象都可以看作是,无标号对象枚举了所有可能的标号顺序得到的
问题转变为寻找拼接方法使得两个有标号对象拼接起来之后,能和无标号对象拼接起来的东西相对应
方法是重新分配标号,再拼接
对组合对象\(A\)
\[F(x)=\sum_i a_i\frac{x^i}{i!}\]
分配则在乘积的组合数中体现
\[H(x)=F(x)G(x)\Leftrightarrow h(n)=\sum_i \binom{n}{i}f(i)g(n-i)\]
标签:证明 text _id shu ati 无法 otp 三角形 mit
原文地址:https://www.cnblogs.com/66t6/p/12301729.html