622FThe Sum of the k-th Powers
2024-10-07 12:05:33
题目大意
求$\sum_{i=1}^{n} i^k$
分析
我们发现这是一个$k+1$次多项式
因此我们求出前$k+2$项然后插值即可
由于$x_i = i$
因此公式里面的乘机可以通过预处理然后循环中乘逆元的方式快速得到
代码
#include<bits/stdc++.h>
using namespace std;
const int N = 1e6+;
const int mod = 1e9+;
int n,k,p[],inv[],sum[],Ans;
inline int pw(int x,int tot){
int res=;
while(tot){
if(tot&)res=1ll*res*x%mod;
x=1ll*x*x%mod;
tot>>=;
}
return res;
}
int main(){
int i,j,t=;
scanf("%d%d",&n,&k);
p[]=;
for(i=;i<=N;i++)p[i]=1ll*p[i-]*i%mod;
inv[N]=pw(p[N],mod-);
for(i=N-;i>=;i--)inv[i]=1ll*inv[i+]*(i+)%mod;
for(i=;i<=k+;i++)sum[i]=(sum[i-]+pw(i,k))%mod;
if(n<=k+){printf("%d\n",sum[n]);return ;}
for(i=;i<=k+;i++)t=1ll*t*(n-i)%mod;
for(i=;i<=k+;i++){
int res=1ll*sum[i]*t%mod*pw(n-i,mod-)%mod*inv[k+-i]%mod*inv[i-]%mod;
if((k+-i)&)res=mod-res;
Ans=(Ans+res)%mod;
}
printf("%d\n",Ans);
return ;
}
最新文章
- xtrabackup备份rds记录
- ios 使用AFN上传图片到服务器
- 如何在IE8设置透明背景
- Python 之 【markdown 模块的学习】
- 现在, Delphi 的多线程已经非常易用了!
- [转载] YouCompleteMe
- Linux防火墙(Iptables)的开启与关闭
- VC depends使用说明
- Day05 - Python 常用模块
- AppiumDriver 运行app启动基本参数
- HTML 5 JavaScript初步 编译运行.doc
- 断开/删除 SVN 链接(.svn)的几种方法
- Android 开源可缩放平移的绘画板
- Java Native方法
- PHP学习(3)—在HTML中嵌入PHP
- vue-awesome-swiper 的使用
- react的学习笔记
- junit常用注解详细说明
- at MySql.Data.MySqlClient.MySqlStream.ReadPacket 或 FUNCTION account.AddMinutes does not exist
- <;Android 基础(三十四)>; TabLayout 从头到脚