zoukankan      html  css  js  c++  java
  • CF1097G Vladislav and a Great Legend 组合、树形背包

    传送门


    看到(k)次幂求和先用斯特林数拆幂:(x^k = sumlimits_{i=1}^k inom{x}{i}left{ egin{array}{cccc} k \ i end{array} ight}i!)

    那么原式等于(sumlimits_{X} sumlimits_{i=1}^k inom{f(X)}{i}left{ egin{array}{cccc} k \ i end{array} ight}i! = sumlimits_{i=1}^k left{ egin{array}{cccc} k \ i end{array} ight}i! sumlimits_{X} inom{f(X)}{i})

    那么我们需要求(sumlimits_{X} inom{f(X)}{i}),它的组合意义就是从点集(X)的斯坦纳树中无序选出(i)条边的方案总数。不难发现这个就可以背包了。

    (f_{i,j})表示在斯坦纳树经过点(i)的所有点集中选择(j)条边的方案数。当一个儿子转移上来的时候分三种情况转移:

    1、不选择这一个子树;

    2、只选择这一棵子树,此时需要考虑这棵子树到当前点的边;

    3、同时选择当前点的其他子树(或者当前点)和这一棵子树,此时需要考虑这棵子树到当前点的边。

    值得注意的是只有在计算3的时候才能够贡献答案,因为1在之前已经贡献过答案了,而2只是某一棵子树向上延伸的结果,实际上并没有找到一个合法的斯坦纳树,所以不能贡献答案。

    然后又把模数写成了998244353

    代码

  • 相关阅读:
    Altera Coding Style 之多路选择器
    Altera Coding Style 之 时钟切换
    Altera Coding Style 之状态机
    Altera Coding Style 之 Latch
    Altera Coding Style 之 加法器
    JS代码小集合
    汉字转换字符C#(c shap) 代码
    php动态调用方法
    JavaScript 拖放效果
    C# 取得域名及目录地址
  • 原文地址:https://www.cnblogs.com/Itst/p/10836348.html
Copyright © 2011-2022 走看看