连续同指数幂的和
问题:求和:1^k+2^k+...+n^k
例题:
https://codeforces.com/contest/622/problem/F
代码:

#include<bits/stdc++.h> #define fore(x,y,z) for(LL x=(y);x<=(z);x++) #define forn(x,y,z) for(LL x=(y);x<(z);x++) #define rofe(x,y,z) for(LL x=(y);x>=(z);x--) #define pub push_back #define all(x) (x).begin(),(x).end() #define fi first #define se second using namespace std; typedef long long LL; typedef pair<int, int> PII; typedef pair<LL, LL> PLL; LL MOD = 1e9+7; LL n,k; LL p[1000010]; LL fac[1000010]; LL inv[1000010]; LL QuickPow(LL base, LL exp) { LL res = 1; while (exp) { if (exp & 1) { res = res * base % MOD; } base *= base; base %= MOD; exp >>= 1; } return res; } void YD() { cin >> n >> k; if (n <= k + 2) { LL res = 0; for (int i = 1; i <= n; i++) { res += QuickPow(i, k); res %= MOD; } cout << res << endl; } else { for (int i = 1; i <= k + 5; i++) { p[i] = p[i - 1] + QuickPow(i, k); p[i] %= MOD; } fac[0] = 1; for (int i = 1; i <= k + 5; i++) { fac[i] = fac[i - 1] * i % MOD; } inv[k + 5] = QuickPow(fac[k + 5], MOD - 2); for (int i = k + 4; i >= 0; i--) { inv[i] = inv[i + 1] * (i + 1) % MOD; } LL c = 1; for (int i = 1; i <= k + 2; i++) { c = c * (n - i) % MOD; } LL res = 0; LL s=1; if (k % 2) s = -1; for (int i = 1; i <= k + 2; i++) { s *= -1; res += p[i] * c % MOD * QuickPow(n - i, MOD - 2) % MOD * inv[i - 1] % MOD * inv[k + 2 - i] % MOD * s % MOD; res = (res + MOD)% MOD; } cout << res << endl; } } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int T = 1; //cin >> T; while (T--) { YD(); } return 0; }
1、当n较小而k较大时,用快速幂求解
2、当k较小而n较大时
拉格朗日插值法:
参考题解:
https://blog.csdn.net/cheng__yu_/article/details/107489125
https://blog.csdn.net/baidu_35643793/article/details/75270875
https://blog.csdn.net/sdfzchy/article/details/78307534?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-1.nonecase
复杂度klogk
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人