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

CF995F Cowmpany Cowmpensation

给定一棵以 \(1\) 为根的 \(n\) 个节点的树,第 \(i\) 个点的父亲为 \(p_i\)。你需要给第 \(i\) 个节点赋予一个整数点权 \(a_i\),需要满足下面的性质:

  • \(\forall i \in [1,n],a_i \in [1,D]\)

  • \(\forall i \in [2,n],a_i \leq a_{p_i}\)

求不同方案的总数。

\(1 \leq n \leq 3000\)\(1 \leq D \leq 10^9\)

考虑朴素 dp,记 \(dp_{i,j}\) 表示在以 \(i\) 为根的子树中 \(a_i \leq j\) 的填法总数,可得:

\[dp_{i,j}=dp_{i,j-1}+\prod\limits_{k \in son_i} dp_{k,j} \]

考虑到若 \(i\) 为原树的叶子节点,则 \(dp_{i,j}=j\),易知 \(dp_i\) 为关于 \(j\) 的一次多项式。由于 \(dp_{i,j}\) 为所有儿子的 \(dp_{i,j}\) 乘积的前缀和,容易发现 \(dp_{i}\) 应该是 \(k\) 次多项式,其中 \(k\)\(i\) 的子树大小,于是你算出 \(O(n)\)\(dp_{1,j}\) 的值后插值即可得到 \(dp_{1,D}\)。时间复杂度 \(O(n^2)\)

http://www.jsqmd.com/news/24010/

相关文章:

  • 背诵
  • 关系运算符逻辑运算符
  • WPF datagrid mvvm loaded 100M items,prism.wpf,prism.dryioc
  • 20232406 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • 20232424 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • MLA原理讲解
  • LLM什么时候才能输出固定格式
  • MCP和Function Calling的区别
  • 《程序员修炼之道》 阅读笔记三
  • sg.绑定键盘事件
  • FastAPI 架构指南:用这份模版打造可扩展又安全的系统(附实战经验)
  • CF708E Students Camp 题解
  • 每日反思(2025_10_27)
  • 20251027
  • window[-TEXT-] 有哪些属性和方法?
  • HT-083 CSP J/S题解
  • 壁纸收集
  • 洛谷 P6965 [NEERC 2016] Binary Code /「雅礼集训 2017 Day4」编码 【经验值记录】(2-SAT 学习笔记)
  • CentOS7安装Miniconda
  • 我在博客修文物
  • CSP-S模拟40
  • CF1608F MEX counting 题解
  • [题解]P7914 [CSP-S 2021] 括号序列
  • Windows11安装miniconda
  • 【中份薯条】雷柏MT760鼠标上手改装
  • 102302116 田自豪 作业1
  • 实验二:现代C++编程初体验
  • 公众号排版神器:2025年最新顶级AI排版软件索引指南
  • 第四篇:docker底层原理
  • 【中份薯条】雷柏MT760上手改装