51nod 1258序列求和

简介: 51nod 1258序列求和

T(n) = n^k,S(n) = T(1) + T(2) + … T(n)。给出n和k,求S(n)。

例如k = 2,n = 5,S(n) = 1^2 + 2^2 + 3^2 + 4^2 + 5^2 = 55。

由于结果很大,输出S(n) Mod 1000000007的结果即可。


拉格朗日插值:4.png

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod = 1e9 + 7;
const int maxn = 50000 + 10;
const int N = maxn;
ll fac[maxn], pl[maxn], pr[maxn];
ll qpow(ll a, ll b) {
  ll ans = 1;
  while (b) {
    if (b & 1) {
      ans = (ans * a) % mod;
    }
    a = (a * a) % mod;
    b >>= 1;
  }
  return ans % mod;
}
int main() {
   fac[0] = 1;
  for (int i = 1; i <= N; i++) {
    fac[i] = fac[i - 1] * i % mod;
  }
  int T;
  scanf("%d", &T);
  while (T--) {
    ll n, k, y=0, ans = 0;
    scanf("%lld%lld", &n, &k);
    pl[0] = pr[k + 3] = 1;
    for (int i = 1; i <= k + 2; i++) {
      pl[i] = pl[i - 1] * (n % mod - i + mod) % mod;
    }
    for (int i = k + 2; i >= 1; i--) {
      pr[i] = pr[i + 1] * (n % mod - i + mod) % mod;
    }
    for (int i = 1; i <= k + 2; i++) {
      y = (y + qpow(i, k)) % mod;
      ll a = pl[i - 1] * pr[i + 1] % mod;
      ll b = fac[i - 1] * ((k + 2 - i) & 1 ? -1 : 1) * fac[k + 2 - i];
      b = (b % mod + mod) % mod;
      ans = (ans + y * a % mod * qpow(b, mod - 2) % mod)  % mod;
    }
    printf("%lld\n", ans);
  }
  return 0;
}


4.png

相关文章
|
Linux Go 数据安全/隐私保护
【GO】在macOS上交叉编译
go语言开发过程中经常会遇到"在macOS上开发",可执行程序在Linux上运行的场景,这样就需要用到交叉编译了
732 0
|
11月前
|
存储 SQL 关系型数据库
MySQL创建表
如何使用MySQL CREATE TABLE语句在数据库中创建新表。
297 0
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp微信小程序的外卖点餐系统的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的外卖点餐系统的详细设计和实现
217 0
|
存储 安全 Java
JDK22发布了!来看看有哪些新特性
以上是介绍 JDK22新特性的全部内容了,突然V哥想要感慨一下,技术之路,学无止境,选择 IT 技术,作个纯粹的人,享受研究技术的过程,这种带来的快感,也许只有真正热爱编程的人才能有体会。
373 0
|
中间件 数据格式
中间件数据格式文本与二进制之间的转换
中间件数据格式文本与二进制之间的转换
153 2
|
供应链 监控 决策智能
带你读《中国零售行业数智化成熟度白皮书》2.2深析指标,解惑零售数智差异点(4)
带你读《中国零售行业数智化成熟度白皮书》2.2深析指标,解惑零售数智差异点(4)
145 0
带你读《中国零售行业数智化成熟度白皮书》2.2深析指标,解惑零售数智差异点(4)
|
算法
【改进粒子群优化算法】自适应惯性权重粒子群算法(Matlab代码实现)
【改进粒子群优化算法】自适应惯性权重粒子群算法(Matlab代码实现)
346 1
|
JavaScript 前端开发
JavaScript —— 生成随机数
JavaScript —— 生成随机数
229 0
|
缓存 网络协议 安全
网络协议之:还在用HTTP代理?弱爆了!快试试SOCKS5
网络协议之:还在用HTTP代理?弱爆了!快试试SOCKS5
|
前端开发 Python
HTML通过Ajax上传图像至Django后端并转换为Mat图像
HTML通过Ajax上传图像至Django后端并转换为Mat图像