博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CF1097G Vladislav and a Great Legend 组合、树形背包
阅读量:5065 次
发布时间:2019-06-12

本文共 754 字,大约阅读时间需要 2 分钟。


看到\(k\)次幂求和先用斯特林数拆幂:\(x^k = \sum\limits_{i=1}^k \binom{x}{i}\left\{ \begin{array}{cccc} k \\ i \end{array} \right\}i!\)

那么原式等于\(\sum\limits_{X} \sum\limits_{i=1}^k \binom{f(X)}{i}\left\{ \begin{array}{cccc} k \\ i \end{array} \right\}i! = \sum\limits_{i=1}^k \left\{ \begin{array}{cccc} k \\ i \end{array} \right\}i! \sum\limits_{X} \binom{f(X)}{i}\)

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

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

1、不选择这一个子树;

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

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

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

然后又把模数写成了998244353

转载于:https://www.cnblogs.com/Itst/p/10836348.html

你可能感兴趣的文章
数据结构3——浅谈zkw线段树
查看>>
Introduction to my galaxy engine 2: Depth of field
查看>>
Python 3.X 练习集100题 05
查看>>
设计器 和后台代码的转换 快捷键
查看>>
Monkey测试结果分析
查看>>
STL——配接器、常用算法使用
查看>>
STL容器之vector
查看>>
无法向会话状态服务器发出会话状态请求
查看>>
数据中心虚拟化技术
查看>>
01入门
查看>>
复习文件操作
查看>>
SQL Server 使用作业设置定时任务之一(转载)
查看>>
第二阶段冲刺-01
查看>>
BZOJ1045 HAOI2008 糖果传递
查看>>
发送请求时params和data的区别
查看>>
JavaScript 克隆数组
查看>>
eggs
查看>>
一步步学习微软InfoPath2010和SP2010--第七章节--从SP列表和业务数据连接接收数据(4)--外部项目选取器和业务数据连接...
查看>>
如何增强你的SharePoint 团队网站首页
查看>>
FZU 1914 Funny Positive Sequence(线性算法)
查看>>