• [ZJOI2018]树の思路总结


    [f(i,j)表示生成jk棵大小为i的树全部同构的方案数\ g(i,j,t)表示用大小不超过i的树生成大小和为t的一堆树的等价类的大小的jk次幂和\ f(i,j)=g(i-1,j,i-1)\ 枚举大小为i的子树个数v做背包\ g(i,j,t)=sumlimits_{iv+k=t}g(i-1,j,k)h(i,j,v)inom {t}{iv}^{jk}\ inom {t}{iv}^{jk}是在重分配标号,乘上扩大等价类大小倍数的jk次方的贡献。\ h(i,j,v)表示使用v棵大小为i的树,等价类大小的jk次幂和\ 然后为了计算h,我们引入群论计数的知识\ 定义 ext G是一个长度为m的置换群,大小为m!,换言之 ext G包含所有的m长度置换\ 定义一个森林的向量集合X,forall xin X,x内部为有序的等价类(颜色)标号。\ 定义元素的权值w(x)=prodlimits_{i=1}^mf(I,a_ij),不难发现任意轨道元素权值相等\ 于是我们定义w(x^G)=w(x)\ 现在需要的是所有轨道的权值和\ h(i,j,v)=sumlimits_{xin X}frac {w(x^G)}{|x^G|}prodlimits_{i=1}^mfrac 1{(a_i!)^{jk}}\ 因为这个权值不讲武德,我们考虑使用 ext{burnside}引理的加权形式。\ 定义c(f)的权值为所有不动点的和,不难证明, sumlimits_xfrac {w(x^G)}{|x^G|}=frac 1{|G|}sumlimits_{fin G}w(c(f))\ 好,考虑如果我们把后面的东西强行放进轨道里,不动点的权值之间就无法转移。\ 因为frac 1{(x!)^k}frac 1{(y!)^k} eq frac 1{(x+y)!^k}\ 于是我们考虑构造稳定化子的权值,\ 令W(f)为置换f的权值,定义W(G_x)为所有稳定化子中置换的权值和。\ 再看一眼h(i,j,v)=sumlimits_{xin X}frac {w(x^G)}{|x^G|}prodlimits_{i=1}^mfrac 1{(a_i!)^{jk}}\ 令prodlimits_{i=1}^mfrac 1{(a_i!)^{jk}}=A ]

    [如果构造frac{|x^G|W(G_x)}{|G|}=A,则有\ sumlimits_xfrac {w(x^G)}{|x^G|}A=frac 1{|G|}sumlimits_fW(f)w(c(f))\ 为什么成立?考虑 ext{burnside}的引理的证明过程,稳定化子的权值是在对点k的不动置换求和。\ 这里我们还是枚举置换,对相应的不动点乘上本身的置换求和。\ 其实就是 sumlimits_{xin X}w(x)sumlimits_{fin G_x}W(f)=sumlimits_{fin G}W(f)sumlimits_{xin c(f)}w(x)\ 随便换一下带进去就可以证明了\ 那么先假设我们构造成功了,我们就有h(i,j,v)=frac 1{v!}sumlimits_{f}W(f)w(c(f))\ 好,现在这个东西没法直接做,我们自然想到 ext{P}acute{ ext{o}} ext{lya}定理。\ 于是我们考虑将f表示为{a_1,a_2,ldots,a_m}这些长度分别为1到m的轮换,这些轮换互相独立。\ 我们只需要给轮换构造权值W(a_i),那么就有\ W(f)w(c(f))=prodlimits_{i=1}^mf(I,a_ij)W(a_i)\ 这个时候可以转移了,注意到两维的乘积在变小,所以j也有了边界。\ 我们再考虑转移里的一些细节,\ 我们要处理的是对所有置换f去求上面的式子的和,但是这肯定不行,\ 于是我们考虑得到一个S(v)表示所有长度为v的置换权乘不动点权的和,\ 也就是h(i,j,1...n)需要的值乘|G|=v!。\ 诶我们看看这个东西怎么搞,令q(i)=W(i)f(I,ji),枚举长度为i的轮换个数a_i,我们得到\ S(n)=n!sumlimits_{sumlimits_{i=1}^mia_i=n}prodlimits_{i=1}^mfrac{q(i)^{a_i}}{i^{a_i}a_i!}\ 为什么?可分解为轮换{a_1,a_2,ldots,a_m}的置换个数是frac{n!}{prodlimits_{i=1}^mi^{a_i}a_i!}\ ]

    [现在考虑构造置换环系数 当置换环长度为1时,可以直接构造系数。\ 带入|G_x|=|G|的一个向量x,换言之,x内的所有颜色相同。\ 根据frac{W(G_x)}{|G_x|}=A=prodlimits_{i=1}^mfrac 1{(a_i!)^{jk}}\ 那么frac {W(G)}{|G|}=frac 1{(m!)^{jk}}\ 同时长度为n的置换的和也是置换环做背包的结果,即\ sumlimits_{sumlimits_{i=1}^mia_i=n}prodlimits_{i=1}^mfrac{W(i)^{a_i}}{i^{a_i}a_i!}=frac{W(G)}{|G|}=frac 1{(m!)^{jk}} ]

    update:注意上面h没有重分配标号,做完背包之后还要乘一个(frac {iv!}{(i!)^v}^{jk})来考虑重分配标号的贡献,背包可以用exp,ln来实现

  • 相关阅读:
    【dp专题1】hdu1003 D
    #网络之宙斯盾航母#-----占位--------linux
    面向过程6-----#过程之王#----占个位-----汇编语言----(面向机器)
    面向过程5----c#
    高级语言学习总结
    js实现求二元一次方程的根
    小知识点总结
    js小案例,判断年龄是否成年
    js实现结婚吧小案例
    面向过程4-----perl
  • 原文地址:https://www.cnblogs.com/LLCSBlog/p/14034978.html
Copyright © 2020-2023  润新知