zoukankan      html  css  js  c++  java
  • loj6570 毛毛虫计数(生成函数FFT)

    link

    巨佬olinr的题解 <-- olinr很强

    考虑生成函数

    考虑直径上点数>=4的毛毛虫的直径,考虑直径中间那些节点以及他上面挂的那些点的EGF

    (A(x)=sum_{ige 1}frac{ix^i}{i!})

    考虑和直径两端点相连的节点,我们强制让他挂至少一个点(否则他就成了直径端点就重复了),EGF

    (B(x)=sum_{ige 2}frac{ix^i}{i!})

    最后答案生成函数就是

    (Ans(x)=B(x)*frac{1}{1-A(x)}*B(x))

    考虑直径上点数为3的毛毛虫,发现就是一个菊花,刚好有 n 种情况

    另外毛毛虫正着反着是一样的,注意除以一个2

    所以答案为 (frac{[x^n]Ans(x)n!}{2}+n)

    另外n=2要特判,一开始就想到了,只是忘了造这种数据了,然后好多人没特判就加上n=2数据了卡同学23333

    代码太丑不放了23333

    关于这个idea是怎么来的,olinr讲了 [ZJOI2016]大森林 这道题,我大力debug没d出来,就把第一个样例放graph editor里大力跑,然后虚点连成了一个类似毛毛虫的东西...于是就有了这题... 所以题面里写的 olinr是巨佬

    吐槽:为了验证解法,我手跑小数据时候发现n<=6所有树都是毛毛虫,n=7只有一种情况不是(中心一个点,身处3条长度为2的链) n=8只好枚举毛毛虫的形态再用高中数学那套理论跑。。。一开始跑错了,后来对了

    upd:巨佬xyx用容斥A了。。。比生成函数FFT多项式求逆快好几倍。。。link

    (其实我当初就应该直接要求输出1到n的个数的。。。只是当时把这题扔到了一套题里面,三道题的输入输出都是一个数,懒得改数据了。。。)

  • 相关阅读:
    常用cmd命令总结
    百度地图api的简单应用(二):轻量级路径规划
    百度地图api的简单应用(一):POI检索
    R语言-八皇后问题
    8086基本IO口的仿真
    输入输出与中断
    汇编语言例子
    变量标号
    变量声明
    串操作指令2
  • 原文地址:https://www.cnblogs.com/oier/p/10602560.html
Copyright © 2011-2022 走看看