当前位置: 首页 > news >正文

题解:【集训队作业2018】count

两个序列同构当且仅当两个序列生成的笛卡尔树相同。所以我们要对序列能够生成的笛卡尔树计数。

为了方便,我们钦定相等元素左边更大,这样笛卡尔树就成了二叉树。

不难发现,笛卡尔树合法的条件是,其任意左链的长度 \(\le m\)

于是考虑 DP。设 \(f_{i,j}\) 表示左链长度 \(\le i\),有 \(j\) 个点的合法树个数,那么有转移:

\[f_{i,j}=\sum_{k=0}^{j-1} f_{i-1,k}f_{i,j-1-k} \]

直接做是 \(O(n^3)\) 的,考虑优化。下面介绍一种很厉害的 GF 做法。

设形式幂级数 \(F_i\) 满足 \([x^j]F_i=f_{i,j}\),那么卷积可以表示为:

\[F_i=F_{i-1}F_ix+1 \]

也就是:

\[F_i=\frac{1}{1-F_{i-1}x} \]

发现 \(F_i\) 可以表示为 \(\frac{a_i}{b_i}\) 的形式,考虑递推 \((a_i,b_i)\)

\[F_{i}=\frac{1}{1-\frac{a_{i-1}}{b_{i-1}}x} \]

\[F_i=\frac{b_i-1}{b_{i-1}-a_{i-1}x} \]

那么就是:

\[a_i=b_{i-1} \]

\[b_i=b_{i-1}-a_{i-1}x \]

把转移写成矩阵:

\[ \begin{bmatrix}a_{i-1} & b_{i-1} \end{bmatrix} \begin{bmatrix}0 & -x\\1 & 1 \end{bmatrix} =\begin{bmatrix}a_{i} & b_{i} \end{bmatrix} \]

直接矩阵快速幂优化即可。为了方便可以把 \(a_i,b_i\) 全部 DFT,最后求值的时候再 IDFT 回去。

初始 \(F_0=1\),即 \(a_0=b_0=1\)

最后答案为 \([x^n]F_m\)

复杂度 \(O(n \log n)\)

http://www.sczhlp.com/news/42873/

相关文章:

  • Redis 缓存一致性:从“数据不一致”根源到解决方案全梳理
  • Dify基础应用篇 (6) | 文本生成应用实战:5 分钟批量产出 100 篇 SEO 文章
  • 烟台网站设计公司推荐河南网站开发公司
  • 建设网站条件谷歌搜索引擎入口2022
  • 流量平台排名青岛网络优化代理
  • 做网站赚几百万seo公司培训课程
  • 工业信息部网站备案哪里有培训网
  • 互联网保险公司十大排名青岛谷歌优化公司
  • 桥下网站制作哪家好搜索引擎优化实训报告
  • 东莞大型网站建设公司网站推广推广
  • 什么是网站运营推广线上宣传方案
  • 网站模板视频教程360搜索引擎
  • 汕头达濠百度刷排名seo
  • 网上申报系统入口seo包年优化平台
  • 赚钱网站怎么做武汉建站公司
  • streamlit 文件操作
  • 设置win10 桌面图标间距的方法
  • 8gu-RPC框架
  • 旅游网站设计背景抖音推广引流平台
  • 负责县政府网站建设 更新不能搜的超级恶心的关键词
  • 学院网站建设的意义网站seo推广公司靠谱吗
  • 上海专业网站建设案例百度官方推广
  • 公司网站建设目的和意义seo策略是什么意思
  • Java集合框架-单列集合Collection
  • 关于python的修复和卸载
  • Akvis智能抠像插件/软件SmartMask For Photoshop CC 2017 v9.0.2229.13867下载与安装教程
  • 一元云淘网站开发国内搜索引擎排名2022
  • 深圳网站建设代理网上怎么注册公司免费的
  • 上门做网站哪家好优化设计答案五年级下册
  • 好一点的网站建设百度应用商店app下载