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

对于生成虚tree进行DP——CF1097G Vladislav and a Great Legend

对于生成虚tree进行DP——CF1097G Vladislav and a Great Legend

首先

\[\sum_Xf^k(X)=\sum_{i=1}^k{k \brace i}i!\sum_X{F(X)\choose i} \]

考虑如何 \(dp\) \(\sum_X{F(X)\choose i}\)

\(f_{x,i}\) 表示考虑 \(x\) 的子树中的若干种点集选择方案,其中选择了 \(i\) 条边的方案数,这里这里并不要求 \(x\) 本身在不在虚树中。

  1. 一个考虑是对于每一种虚树,我们在深度最浅处记录答案。

  2. 另一个考虑是,为了方便转移,我们要时刻认为其祖先上有点被选择。

为了方便转移,设 \(g_{x,i}\) 表示在 \(f_{x,i}\) 的基础上考虑上 \(x\)\(fa\) 的边。即 \(g_{x,i}=f_{x,i}+f_{x,i-1}\),考虑到若 \(x\) 的子树中的选择方案是空集,则一定不能选择这条边,所以 \(g_{x,1}\gets g_{x,1}-1\)

初始时 \(f_{x,0}=2\) 表示 \(x\) 可以选或不选。

现在考虑合并一个 \(y\),显然 \(f'_{x,i+j}\gets f_{x,i}g_{y,j}\)

但由于这样可能有 \(x\) 不再虚树中的情况,所以 \(as_i\gets as_i+f_{x,i}-\sum_{y}g_{y,i}\)。即减去仅有一个子树的情况,因为这样 \(f_{x,0}\) 应该等于 \(1\) 才对。

最后答案就是 \(\sum_{i=1}^k{k \brace i}i!as_i\)


背包合并时,限制枚举到 \(\min(k,siz[x])\),即:

lop(i,0,min(k,siz[x]))lop(j,0,min(k,siz[y]))(tmp[i+j]+=f[y][j]*f[x][i])%=MOD;

可以将复杂度减为 \(\mathcal O(nk)\)

证明考虑,转移相当于选择 \(x\) 中dfn后 \(k\) 大的,\(y\) 中前 \(k\) 小的进行匹配

那么每个点相当于仅和其前 \(2k\) 与其后 $2k $ 个点匹配一次,所以复杂度为 \(\mathcal O(nk)\)

http://www.gsyq.cn/news/45888.html

相关文章:

  • 使用napi-rs,通过node调用rust代码
  • 智语写作都有哪些功能?看这一篇就够了!智语写作全功能详解
  • rufus.ini
  • Explorer++
  • Interpretability-Guided Test-Time Adversarial Defense
  • 2025 年 11 月开窗器厂家推荐排行榜,链条开窗器,机芯开窗器,配件开窗器,电动开窗器公司推荐
  • noip5
  • #题解#洛谷P3143
  • 20232326 2025-2026-1 《网络与系统攻防技术》实验四实验报告
  • 2025 ICPC成都+南京游记
  • MySQL表的增删改查 - 教程
  • 20232420 2025-2026-1 《网络与系统攻防技术》实验四实验报告
  • COLMO洗衣机维修24小时售后服务点电话号码
  • 科烁集成灶维修服务丨24h在线报修
  • 【算法学习】AC自动机
  • 华凌燃气灶全国各市服务点网点热线号码
  • 20234320 2025-2026-1 《网络与系统攻防技术》实验四实验报告
  • 6G网络通讯端到端结构
  • 万喜消毒柜售后维修中心服务热线电话(2025/已更新)
  • 通过远程桌面连接Windows实例, 提示“为安全考虑, 已锁定该用户帐户, 原因是登录尝试或密码更改尝试过多”
  • 重练算法(代码随想录版) day6 - 哈希表part1
  • 别让料单拖慢开关柜生产!这个功能让精准与效率双在线
  • Netty管道机制:ChannelPipeline与Handler详解
  • 25.11.10随笔联考总结
  • [Python刷题记录]-旋转图像-矩阵-中等
  • 2025年11月智能油烟机型号排行:实测数据与选购要点一网打尽
  • P1531 I Hate It
  • CI/CD产品选型调研 - 详解
  • 安装向日葵远程协助软件
  • 教务管理系统开发博客