2019ICPC南昌邀请赛题解

The 2019 ICPC China Nanchang National Invitational and International Silk-Road Programming Contest

B. Polynomial

Description

定义 f i = ∑ i = 0 n a i x i f_i=\sum_{i=0}^{n}a_ix^{i} fi=i=0naixi,然后给定 f 0 f_{0} f0 ~ f n f_{n} fn,现在给出 m m m 次询问,每次询问给定 L L L R R R,问你 ∑ i = L R f i \sum_{i=L}^{R}f_{i} i=LRfi 是多少

Tutorial

拉格朗日插值裸题,正好复习一下

拉格朗日插值是用来对任意曲线进行多项式拟合的,假设现在给定某一曲线中的任意 n + 1 n + 1 n+1 个点 ( x i , y i ) (x_i,y_i) (xi,yi),那么我就可以使用拉格朗日插值求出该曲线的最高幂次为 n n n 近似多项式函数,其公式如下:
f ( k ) = ∑ i = 1 n y i ∏ j ≠ i k − x j x i − x j f(k)=\sum_{i=1}^{n}y_i\prod_{j \neq i}\frac{k-x_j}{x_i-x_j} f(k)=i=1nyij=ixixjkxj
那么我们可以使用上式在 O ( n 2 ) O(n^2) O(n2) 的时间内求出该曲线内的任意一点的近似值

在本题中,显然 f i f_i fi 是一个最高幂次为 n n n 多项式函数,那么我们可以使用给定的 n + 1 n + 1 n+1 个点来求出任意一点的值

但是 O ( n 2 ) O(n^2) O(n2) 的时间显然不能满足我们的需求,考虑优化

可以发现题目中的 x x x 是连续的,即 x = 1 , 2 , 3 , . . . x = 1, 2, 3, ... x=1,2,3,...,那么上式可以写成:
f ( k ) = ∑ i = 1 n y i ∏ j ≠ i k − j i − j f(k)=\sum_{i=1}^{n}y_i\prod_{j \neq i}\frac{k-j}{i-j} f(k)=i=1nyij=iijkj

发现乘积部分的分母其实可以写成阶乘形式,而分子也可以化简

f ( k ) = ∑ i = 1 n y i p r e i − 1 × s u f i + 1 f a c i × ( ± f a c n − i ) f(k)=\sum_{i=1}^{n}y_i\frac{pre_{i-1} \times suf_{i+1}}{fac_i \times (\pm fac_{n-i})} f(k)=i=1nyifac

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值