题目链接

BZOJ题面

洛谷题面

Solution

随便推一推,可以发现瓶颈在求\(\sum_{i=1}^n i^k\),关于这个可以看看拉格朗日插值法

复杂度\(O(Tm^2)\)。

#include<bits/stdc++.h>
using namespace std; #define int long long void read(int &x) {
x=0;int f=1;char ch=getchar();
for(;!isdigit(ch);ch=getchar()) if(ch=='-') f=-f;
for(;isdigit(ch);ch=getchar()) x=x*10+ch-'0';x*=f;
} void print(int x) {
if(x<0) putchar('-'),x=-x;
if(!x) return ;print(x/10),putchar(x%10+48);
}
void write(int x) {if(!x) putchar('0');else print(x);putchar('\n');} #define lf double
#define ll long long const int maxn = 100;
const int inf = 1e9;
const lf eps = 1e-8;
const int mod = 1e9+7; int qpow(int a,int x) {
int res=1;a%=mod;
for(;x;x>>=1,a=1ll*a*a%mod) if(x&1) res=1ll*res*a%mod;
return res;
} int m,a[maxn],pw[maxn],pre[maxn],suf[maxn],fac[maxn],ifac[maxn]; int calc(int n,int k) {
k++;suf[k+1]=fac[0]=ifac[0]=1;pre[0]=n%mod;
for(int i=1;i<=k;i++) pre[i]=pre[i-1]*((n-i)%mod)%mod;
for( for(int i=1;i<=k;i++) pre[i]=pre[i-1]*((n-i)%mod)%mod;
for(int i=k;~i;i--) suf[i]=suf[i+1]*((n-i)%mod)%mod;
int i=k;~i;i--) suf[i]=suf[i+1]*((n-i)%mod)%mod;
for(int i=1;i<=k;i++) fac[i]=fac[i-1]*i%mod;
ifac[k]=qpow(fac[k],mod-2);
for(int i=k-1;i;i--) ifac[i]=ifac[i+1]*(i+1)%mod;
int ans=0;
for(int i=1;i<=k;i++) ans=(ans+(((k-i)&1)?-1:1)*pw[i]*pre[i-1]%mod*suf[i+1]%mod*ifac[i]%mod*ifac[k-i]%mod);
return ans;
} void solve() {
int N,n;read(N),read(m);for(int i=1;i<=m;i++) read(a[i]);n=N;
for(int i=1;i<=m+3;i++) pw[i]=(qpow(i,m+1)+pw[i-1])%mod;
int ans=0;sort(a+1,a+m+1);
for(int i=0;i<=m;i++) {
ans+=calc(n-a[i],m+1);
for(int j=i;j<=m;j++) ans=(ans-qpow(a[j]-a[i],m+1))%mod;
}write((ans+mod)%mod);
} signed main() {
int t;read(t);
while(t--) solve();
return 0;
}

最新文章

  1. 美团HD(1)-设置导航栏主题
  2. UDP(强行关闭了一个现有的连接远程主机)
  3. Angular依赖注入详解
  4. MinGW
  5. [转]Java Thread Dump 性能分析
  6. 杭电1466------简单的dp
  7. 关于aspx模板页面元素路径的问题,以及对模板页面的理解
  8. Sublime Text 3使用技巧总结--快捷键及常用插件
  9. 常用433MHZ无线芯片性能对比表分享
  10. Android 中文API (68) —— BluetoothClass.Service
  11. asp.net webform生命周期
  12. Android Doze模式启用和恢复
  13. 多线程面试题系列(2): CreateThread与_beginthreadex本质区别
  14. Swift基础之Delegate方法的使用
  15. 【转载】阿里云Windows服务器快速部署PHP运行环境
  16. 无法启动程序,因为计算机丢失D3DCOMPILER_47.dll 的解决方法
  17. Linux下pip使用国内源
  18. Selenium2+python自动化49-判断文本(text_to_be_present_in_element)
  19. HIVE大数据出现倾斜怎么办
  20. python中 列表常用的操作

热门文章

  1. SpringBoot-05:SpringBoot初运行以及tomcat端口号的修改
  2. CDN 缓存策略(转)
  3. redhat防火墙管理
  4. git配置github链接
  5. 【转载】完全版线段树 by notonlysuccess大牛
  6. 二 Capacity Scheduler 计算能力调度器
  7. Java学习个人备忘录之数组工具类
  8. 20162328蔡文琛week09
  9. c#调用c++dll(c++界面在c#显示)____制作dll
  10. C#语言使用redis