zoukankan      html  css  js  c++  java
  • 「考试」省选95

    T1
    大神说是打个表找规律啥的。
    我利用生成函数+吉夫特那个题的结论推出来类似的结论。
    就是说对于所有深度为(i)的点,其对答案有贡献,当且仅当(t&i=0)
    这样的话就可以直接用一个(orFWT)来做了。

    T2
    生成树计数原题。
    比原题还简单。
    可以把(a_i)抽象成一个点变成一个含有(a_i)个点的连通块。
    然后按照那个题一样的方法来做了就可以。
    推式子部分比原题还简单。
    剩下的就是一个分治(FFT)求数列(k)次和。
    复杂度就是(O(nlog^2n))的。
    用了(exp)所以常数稍微大一点。
    生成函数+(prufer)来把序列给用(egf)搞出来的套路很重要。

    T3
    好恶心好难写啊。
    我们发现对于一条路径来说,点的个数-边的个数,那么对于一条路径来说,只需要把边权(-w),点权(+w)就可以了。
    这样做一个最长路径(dp)就可以了。
    这个东西不好做。
    用树链剖分来搞重链上的最大子区间。
    轻链部分对于每个轻链的父亲均存一个堆。
    用这个存除了重儿子意外的所有轻儿子的贡献。
    这样用堆中的最大和次大值就可以更新答案了。

  • 相关阅读:
    Jenkins安装
    Python操作yaml文件
    class 中构造函数与析构函数
    python发送邮件(yagmail模块)
    filter、map函数的区别
    python redis操作
    多个 python的pip版本选择
    python Excel操作
    python MD5操作
    缓存淘汰算法之LRU实现
  • 原文地址:https://www.cnblogs.com/Lrefrain/p/12884548.html
Copyright © 2011-2022 走看看