传送门


两个序列相同当且仅当它们的笛卡尔树相同,于是变成笛卡尔树计数。

然后注意到每一个点的权值一定会比其左儿子的权值大,所以笛卡尔树上还不能够存在一条从根到某个节点的路径满足向左走的次数\(> m-1\)。不难证明只需这个条件以及\(n \geq m\)的条件满足,一定存在一种权值分配方案使得\(1\)到\(m\)都被分配到。

不妨设\(F_i(x)\)表示向左走的次数小于\(i\)的笛卡尔树数量的生成函数,即\(f_{i,j}\)表示\(j\)个点、向左走的次数小于\(i\)的笛卡尔树的数量。

那么有\(F_0(x) = 1 , F_i(x) = F_{i-1}x \times F_i(x) \times x + 1\),后者表示的是给根选择一个向左走次数小于\(i-1\)的笛卡尔树作为其左儿子,选择一个向左走次数小于\(i\)的笛卡尔树作为其右儿子。那么可以得到\(F_i(x) = \frac{1}{1 - xF_{i-1}(x)}\)。

设\(F_{i-1}(x) = \frac{A}{B}\),则\(F_i(x) = \frac{B}{B-xA}\)。转移可以用矩阵乘法表示,即\(\left(\begin{array}{cccc} A & B \end{array}\right) \times \left(\begin{array}{cccc} 0 & -x \\ 1 & 1 \end{array}\right) = \left(\begin{array}{cccc} B & B - xA \end{array}\right)\),考虑矩阵快速幂优化这个过程。

那么我们需要解决的问题是如何快速进行多项式乘法和加法,不难想到先对于所有多项式DFT求出其点值表示,这样在矩阵快速幂的过程中只需对多项式进行点乘和加法。最后IDFT得到系数表示后多项式求逆即可求出答案。

记得特判\(n<m\)时答案为\(0\)。

代码

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

UOJ424 Count 生成函数、多项式求逆、矩阵快速幂相关推荐

  1. (每日一题)P4841 [集训队作业2013]城市规划 (无向连通图计数)(普通生成函数 + 多项式求逆)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 每日一题(莫反 / 多项式 / 母函数 / 群论) 2021.4.14 生成函数 + 多项式求逆 Pr ...

  2. CF438E The Child and Binary Tree(有意思的生成函数 + 多项式求逆 + 多项式开方)

    整理的算法模板合集: ACM模板 点我看多项式全家桶(●^◡_◡◡​^●) CF438E The Child and Binary Tree 简单的黑题 首先我们发现模数为99824435399824 ...

  3. 「Luogu4233」射命丸文的笔记-生成函数+多项式求逆

    Description 链接 Solution 考虑所有竞赛图的哈密顿回路条数n!n2Cn2−n\frac {n!} {n} 2^{C_{n}^{2}-n}nn!​2Cn2​−n,即选出一条哈密顿回路 ...

  4. nyoj 301递推求值 (矩阵+快速幂)

    题目:http://acm.nyist.net/JudgeOnline/problem.php?pid=301 题意:给你一个递推公式:f(n)=a*f(n-2)+b*f(n-1)+c 并且告诉你a, ...

  5. HDU 5730 Shell Necklace(生成函数 多项式求逆)

    Shell Necklace 由题意可得f[n]=∑i=1na[i]f[n−i]f[n] = \sum\limits_{i = 1} ^{n} a[i] f[n - i]f[n]=i=1∑n​a[i] ...

  6. #3456. 城市规划(生成函数,多项式求逆)

    #3456. 城市规划 设fnf_nfn​为nnn个点的的点的简单无向连通图数目,gng_ngn​为nnn个点的简单无向图个数(不要求联通). 对于gng_ngn​显然有gn=2n(n−1)2g_n ...

  7. P6295-有标号 DAG 计数【多项式求逆,多项式ln】

    正题 题目链接:https://www.luogu.com.cn/problem/P6295 题目大意 求所有nnn个点的弱联通DAGDAGDAG数量. 1≤n≤1051\leq n\leq 10^5 ...

  8. 【LuoguP4233】射命丸文的笔记-多项式求逆

    测试地址:射命丸文的笔记 做法:本题需要用到多项式求逆. 首先,要求存在哈密顿回路的竞赛图的哈密顿回路期望数量,就是用哈密顿回路的总数除以存在哈密顿回路的竞赛图数量. 要考虑所有竞赛图的哈密顿回路数量 ...

  9. 洛谷P4233 射命丸文的笔记 【多项式求逆】

    题目链接 洛谷P4233 题解 我们只需求出总的哈密顿回路个数和总的强联通竞赛图个数 对于每条哈密顿回路,我们统计其贡献 一条哈密顿回路就是一个圆排列,有\(\frac{n!}{n}\)种,剩余边随便 ...

  10. 多项式求逆与多项式除法/取模

    多项式求逆 Procedure 多项式求逆是多项式模块中的一个重要操作("操作"这个词看出如今多项式题是多么的工业化,犹如毒瘤8操作LCT),在做生成函数/多项式除法.多项式取模/ ...

最新文章

  1. 使用AD5933测量电子器件复阻抗
  2. 12864输出字符c语言,大家看看该怎么改才能让12864液晶显示屏显示21个字符啊?...
  3. 优秀简历要遵循哪些规则
  4. 调用函数,求a+aa+aaa+....+aa...aa(n个a)
  5. promise使用promise进行封装http请求接口
  6. ActiveMQ运行失败 not running
  7. 关于预编译和宏定义部分说明
  8. paip.云计算以及分布式计算的区别
  9. 功能强大的云打印组件-开始使用
  10. 力软敏捷开发框架7.0.6源码
  11. 记录一下我的游戏私服搭建(台服dnf)
  12. 计算机画图软件教学教案,画图软件教学设计
  13. php中拼音转汉字,php 汉字拼音如何转换
  14. 如何区分两列中不同数据_快速找出Excel表格中两列数据不同内容的3种方法!
  15. 物联网带动传感器站上风口 华灿光电并购美新半导体
  16. 厦门大学计算机2018专业分数线,2018厦门大学录取分数线,2018厦门大学各专业录取分数线...
  17. 打了两分钟国际长途,我又得给手机充话费了
  18. 怎么看计算机内存和独显,电脑独立显卡或集成显卡的显存大小怎么查看?
  19. 台式机安装linux软件,台式机如何安装Ubuntu
  20. iframe基本使用

热门文章

  1. 一个有趣手绘风格的Python绘图库使用
  2. python解决sip与ptqt不兼容导致页面截图引擎无法运行问题
  3. 大公司笔试面试有哪些经典算法题目?
  4. linux安装mysql 5.7_linux安装mysql5.7.24
  5. 如何使用SpingMvc实现省市县三级级联?
  6. php 抓取 wordpress 文字内容,WordPress获取页面、文章内容代码
  7. 黑马旅游网完整代码_黑马旅游网(二)注册登陆
  8. python图层合并_Python 2种方法实现叠加矩形框图层
  9. FISCO BCOS Solidity 智能合约 接收数组参数
  10. docker用gpu的参数_Docker化部署(GPU)