码迷,mamicode.com
首页 > 其他好文 > 详细

CF622F The Sum of the k-th Powers (拉格朗日插值)

时间:2020-04-27 13:39:51      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:main   return   amp   res   --   for   power   lld   int   

题目: 输入n,k求\(\sum_{i = 1}^{n} i^k\)
题解: 这个和是k+1次的多项式,我们用k+2个值就可以唯一确定这个多项式,计算f(n)即可

int main()
{
	scanf("%lld%lld",&n,&k);
	pre[0] = suf[k + 3] = fac[0] = 1;
	for(int i = 1; i <= k + 2; ++ i) pre[i] = pre[i - 1] * (n - i) % mod;
	for(int i = k + 2; i >= 1; -- i) suf[i] = suf[i + 1] * (n - i) % mod;
	for(int i = 1; i <= k + 1; ++ i) fac[i] = fac[i - 1] * i % mod;
	for(int i = 1, y = 0; i <= k + 2; ++ i){
		y = (y + qpow(i, k)) % mod;
		ll s1 = pre[i - 1] * suf[i + 1] % mod;
		ll s2 = fac[i - 1] * ((k - i) & 1 ? -1ll : 1ll) * fac[k + 2 - i] % mod;
		res = (res + y * s1 % mod * qpow(s2, mod - 2) % mod) % mod;
	}
	printf("%lld\n",res);
	return 0;
}

CF622F The Sum of the k-th Powers (拉格朗日插值)

标签:main   return   amp   res   --   for   power   lld   int   

原文地址:https://www.cnblogs.com/A-sc/p/12785686.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!