题意
k
种球,每种个数必须是
d
的倍数,共
n
个,求排成一行的方案数.
n≤109,k≤5×105,d≤3,答案对
19491001
取模.
题解
Ans=n!i1≥0,d∣i1∑i1!10≤i2,d∣i2∑i2!1⋯0≤ik,d∣ik∑ik!1=[xn]n!(i≥0,d∣i∑i!xi)k
i≥0,d∣i∑i!xi=i≥0∑i!xid10≤j<d∑ωdji=d10≤j<d∑i≥0∑i!(xωdj)i=d10≤j<d∑exωdj单位根反演泰勒展开
d=2:
i≥0,d∣i∑i!xi(i≥0,d∣i∑i!xi)kAns=d10≤j<d∑exωdj=2ex+e−x=n!(2ex+e−x)k=2k10≤i≤k∑(ki)eixe−x(k−i)=2k10≤i≤k∑(ki)e2ix−kx=[xn]n!(i≥0,d∣i∑i!xi)k=2kn!0≤i≤k∑(ki)[xn]e2ix−kx=2kn!0≤i≤k∑(ki)n!(2i−k)n=2k10≤i≤k∑(ki)(2i−k)n二项式定理泰勒展开
d=3:
i≥0,d∣i∑i!xi(i≥0,d∣i∑i!xi)kAns=d10≤j<d∑exωdj=3ex+eω3x+eω32x=n!(3ex+eω3x+eω32x)k=3k10≤i≤k∑(ki)0≤j≤k−i∑(k−ij)eixejω3xe(k−i−j)ω32x=3k10≤i≤k∑0≤j≤k−i∑(ki)(k−ij)eix+jω3x+kω32x−iω32x−jω32x=[xn]n!(i≥0,d∣i∑i!xi)k=3kn!0≤i≤k∑0≤j≤k−i∑(ki)(k−ij)[xn]eix+jω3x+kω32x−iω32x−jω32x=3kn!0≤i≤k∑0≤j≤k−i∑(ki)(k−ij)n!(i+jω3+kω32−iω32−jω32)n=3k10≤i≤k∑0≤j≤k−i∑(ki)(k−ij)(i+jω3+kω32−iω32−jω32)n多项式定理泰勒展开