拉格朗日插值
拉格朗日插值#
基本介绍#
- 对于一个 次多项式 ,给出其 个位置上的值,即 ,你需要对于给定的 ,求出 的值。
仿照中国剩余定理,构造 使得 ,具体构造为 。
这个构造不难证明是符合要求的:
当 时,所有分子分母都相同,。
当 时,一定存在一项分子为 ,故。
那么 。
暴力带入计算的复杂度为 。
P4781 【模板】拉格朗日插值#
特殊情况#
实践中经常有 ,此时我们尝试化简一下上面的式子:
,预处理 的阶乘,阶乘逆元,前缀积和后缀积,就可以做到 查询 了。
总复杂度 。
CF622F The Sum of the k-th Powers#
可以证明自然数幂和是关于 的 次多项式,我们取 个位置 ,计算出其函数值,之后应用上述拉插求出答案即可。
复杂度 。
CF1817C#
优化 DP#
CF995F Cowmpany Cowmpensation#
暴力 是 的,要优化。
硬组合容斥应该也行,但是不够无脑。
因为本质不同的值只有 种,所以 值是一个关于 的 次函数,那么带入 个 值求出 ,然后插出来就行。
复杂度 。
P4463 [集训队互测 2012] calc#
思路差不多。
分段插值#
[APIO2016] 划艇#
优化暴力 ,把每一段拿出来跑插值即可。
[省选联考 2022] 填树#
考虑钦定最小值 ,算出所有值都在 中的方案数,然后容斥减掉 中的方案数。
考虑对于一个节点,对于不同的 产生的贡献是一个分 段的一次函数,那么把所有节点的段点拿出来总共就会把值域分成 段,每段内所有节点都是一次函数,乘起来就是 次函数。
次函数的前缀和是 次函数,因此我们把每一段内拿出来做一个拉格朗日插值就可以了,第二问同理。
复杂度 。
[NOI2019] 机器人#
与上一题套路差不多,分段之后每段内拉插优化 即可。
P10008 [集训队互测 2022] Range Minimum Element#
更进一步#
如果我们不只满足于求 ,而是想要求出 ,怎么办?
暴力是 的。
考虑先 求出 ,然后每次就是要查询 ,短除法就行。
复杂度 。
这种东西经常可以优化一些卷积式。
对于多项式 ,如果我们求出 ,那么 ,然后再插值还原出系数就行。
当然这样还是 看起来没啥用。
但是如果我们要计算多项式 ,每个多项式次数为 ,那么暴力卷积复杂度是 ,而该做法就可以做到 。
CF1874E Jellyfish and Hack#
暴力 是 的,瓶颈在于卷积,我们带入一些点值,然后把 值看做多项式的系数,这样中间的所有卷积都转化为了点值的乘法,这样复杂度 。
CF917D Stranger Trees#
将树边的权值设为 ,非树边设为 ,那么矩阵树定理求出的答案多项式的 次项系数就是有恰好 条树边的方案数,
暴力维护多项式不可接受,因此带入点值运算,最后拉插还原。
复杂度 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】