题目大意

求$\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 ;
}

最新文章

  1. xtrabackup备份rds记录
  2. ios 使用AFN上传图片到服务器
  3. 如何在IE8设置透明背景
  4. Python 之 【markdown 模块的学习】
  5. 现在, Delphi 的多线程已经非常易用了!
  6. [转载] YouCompleteMe
  7. Linux防火墙(Iptables)的开启与关闭
  8. VC depends使用说明
  9. Day05 - Python 常用模块
  10. AppiumDriver 运行app启动基本参数
  11. HTML 5 JavaScript初步 编译运行.doc
  12. 断开/删除 SVN 链接(.svn)的几种方法
  13. Android 开源可缩放平移的绘画板
  14. Java Native方法
  15. PHP学习(3)—在HTML中嵌入PHP
  16. vue-awesome-swiper 的使用
  17. react的学习笔记
  18. junit常用注解详细说明
  19. at MySql.Data.MySqlClient.MySqlStream.ReadPacket 或 FUNCTION account.AddMinutes does not exist
  20. &lt;Android 基础(三十四)&gt; TabLayout 从头到脚

热门文章

  1. 关于NewJson dll 引用不一致
  2. spring boot 将对象转换为json返回
  3. Redis功能迅速回忆
  4. Web API 入门一
  5. .net core 自定义中间件
  6. 用户权限管理数据库设计(RBAC)
  7. Python 数据分析中金融数据的来源库和简单操作
  8. highcharts控制X刻度值整数调整
  9. Vue实现点击li变色
  10. windows 10预览版升级win10 7月29 10240.16384