[做题笔记 #4] 拉格朗日插值

原来是拉格朗日插值优化 DP 做题笔记。现在整合了一下。


CF622F The Sum of the k-th Powers

拉插优化前缀和板子 & 线性(连续点)拉插板子。

一个多项式差分后次数 1。前缀和是差分的逆运算,因此一个多项式算前缀和后次数 +1

要求的就是前缀和的某一个点值。原来是 k 次,算了前缀和是 k+1 次。n 次的多项式用 n+1 个点可以唯一确定,那么用 k+2 个点来拉插即可。

上面这些分析能在拉插题中类似地运用(比如在 拉插优化值域 DP 中)。

要用线性(连续点)拉插。

2024.11.1

以下来自 2024.10.8 做题总结

用了 类似阶乘逆元 的 线性求随意一些数的逆元(离线)。

注意:拉插的式子不能加绝对值(此题我的做法中,其他情况我不知道)。还不知道什么原因。

有负的照样处理非负的阶乘,最后算 ans 的时候乘一个 -1 的幂即可。

x(此题中的 nmx1m,xi=i,此题中 m=k+2)时直接得到答案,不要拉插。x>m 时再拉插,此时拉插式子的分号上面可以直接预处理 x 的下降幂再乘单个数的逆元。


CF995F Cowmpany Cowmpensation

拉插优化值域 DP 板子。

总结:这种 DP 的状态里一般附加了很大的值域,要在值域上算前缀和,但中间的一些位置的前缀和是不需要的,我们只想要一些关键点处的前缀和。由初值和 DP 方程发现每排状态的值都是次数不高的多项式,于是用拉插来优化。[这种题的另一种思路是离散化,中间那些被省略的东西用某种方法处理(比如组合数)](?)。

容易写出 DP 式子,也容易自子孙向祖先证明最后的答案是一个次数不高的多项式。

直接对根处的那一排 DP 值拉插即可。

可以去看雨兔的题解,感觉讲得特别清楚易懂。%%%

2024.11.1


P3643 [APIO2016] 划艇

分段拉插优化值域 DP 板子。

用了更好些的线性(连续点)拉插写法:对拉插式子里的分子算前缀乘积和后缀乘积,不用算逆元,而是直接夹出来。

总结:拉插可以为不分段的多项式函数插值。而对于分段的多项式函数,我们把每段端点离散化,在 DP 过程中对每一段分别拉插,DP 的阶段每前进 1 就要重新拉插一轮(每轮可能要拉插多次)。分段技巧:把 [l,r] 当成 [l,r+1),这样相邻两端就连续了,把每组 lr+1 拿去一起离散化。细节较多,我可能还没有理解透,具体见代码吧,参考博客 拉格朗日插值优化值域 dp,也参考了其中给出的此题代码。此题仍可以用上一题中所说的“另一种思路”,而且“另一种思路”跑的时间似乎大概是我的拉插写法的 1/10

2024.11.1


P4463 [集训队互测 2012] calc

序列转集合 & 自定顺序 & 拉插优化值域 DP(能锻炼算多项式次数的能力)。

发现序列的顺序对贡献没有影响,于是可以自己安排某种特定的顺序,最后乘一个排列数得到答案。为了方便,此题中我们采用从小到大的顺序。容易写出 DP 方程。发现像是拉插优化值域 DP,考虑多项式的次数是多少。[初始(f[0] 的那一排)是 0 次]([勿忘考虑](?)),[算前缀和 +1,乘 j 相当于每一(位)项都 ×(x1),次数也 +1,所以最后的次数是 2n](???),用 2n+1 个点值来拉插即可。

注意

  1. 拉插时把 x 在已知点值的范围内的情况判掉,防止整出负数。
  2. 模数较小的时候可能加了它还是负的,此时[应该先 % 再加](?????)(我不太清楚 C++ 负数 % 的机制)。

2024.11.1


原内容

本来想在洛谷题单里找斜率优化 DP 的,然后发现了一个拉格朗日插值优化 DP 的题单,就点进去尝试了一下。

题单

于是先看了雨兔的题解,学了 CF995F 的做法,然后 A 了这个题。雨兔题解的链接和我的代码见 CF 上的提交记录。现在正在做后面的题。

P3643 [APIO2016] 划艇

ai,bi 的限制看起来像是可以用前缀和拆掉。于是我们设 fi,j 表示处理了前 i 所学校,当前这所派出了 0,1,2,,j 艘划艇的方案数之和(就是算了个前缀和)。

转移:

fi,j=fi,j1+fi1,j1 (aijbi)

fi,j=fi,j1 (j<ai  j>bi)

fi,0=fi1,jj 便

问题是 j 的范围太大,不好转移。

考虑能不能拉插。

好像我不会。打算之后学。别人的题解

2024.8.29

posted @   huangkxQwQ  阅读(71)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示