CF622F-The Sum of the k-th Powers【拉格朗日插值】

正题

题目链接:https://www.luogu.com.cn/problem/CF622F


题目大意

给出n,kn,kn,k,求
∑i=1nik\sum_{i=1}^ni^ki=1nik


解题思路

很经典的拉格朗日差值问题
这个东西显然是可以化成一个k+1k+1k+1次的多项式的,所以我可以直接代k+2k+2k+2个点插出值来。看到顺眼先把n,kn,kn,k互换一下。
先上一个要刻在DNADNADNA里的公式f(k)=∑i=1nyi∏j=1,j≠inxj−kxi−xjf(k)=\sum_{i=1}^ny_i\prod_{j=1,j\neq i}^n\frac{x_j-k}{x_i-x_j}f(k)=i=1nyij=1,j=inxixjxjk
发现这个直接计算是O(n2)O(n^2)O(n2)的搞不定。
上面的xj−kx_j-kxjk挺好优化的,分别做一个前后缀积就好了,但是麻烦的是xi−xjx_i-x_jxixj。我们可以利用xix_ixi是连续的这个性质,我们只需要带入xi∈[1,n+2]x_i\in[1,n+2]xi[1,n+2]的点即可。

此时xi−xjx_i-x_jxixj就变为了两段阶乘分别是∏j=1i−11i−j\prod_{j=1}^{i-1}\frac{1}{i-j}j=1i1ij1∏j=i+1j1i−j\prod_{j=i+1}^j\frac{1}{i-j}j=i+1jij1。预处理逆元前缀和就好了,需要注意的是因为后面那个式子i−ji-jij是负数所以我们需要判断一下如果n−in-ini是奇数就要取反。

线性筛yiy_iyi的话时间复杂度O(n)O(n)O(n),懒得话直接快速幂O(nlog⁡k)O(n\log k)O(nlogk)


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll N=1e6+10,P=1e9+7;
ll n,k,ans,inv[N],suf[N],pre[N];
ll power(ll x,ll b){ll ans=1;while(b){if(b&1)ans=ans*x%P;x=x*x%P;b>>=1;}return ans;
}
signed main()
{scanf("%lld%lld",&k,&n);// if(k<=n+2){//     for(ll i=1;i<=k;i++)//         ans=(ans+power(i,n))%P;//     printf("%d\n",ans);//     return 0;// }inv[1]=1;n+=2;for(ll i=2;i<=n;i++)inv[i]=P-(P/i)*inv[P%i]%P;inv[0]=1;for(ll i=1;i<=n;i++)inv[i]=inv[i-1]*inv[i]%P;ll tmp=1;pre[0]=suf[n+1]=1;for(ll i=1;i<=n;i++)pre[i]=pre[i-1]*(k-i)%P;for(ll i=n;i>=1;i--)suf[i]=suf[i+1]*(k-i)%P;for(ll i=1,p=0;i<=n;i++){(p+=power(i,n-2))%=P;ans+=p*pre[i-1]%P*suf[i+1]%P*inv[i-1]%P*(((n-i)&1)?P-inv[n-i]:inv[n-i])%P;ans=ans%P;}printf("%lld\n",(ans+P)%P);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/319821.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

平板游戏问题(luogu 2003/2018 特长生 T4)

正题 luogu 2003 题目大意 在平面上有若干块板子&#xff0c;每块板子的左右端分别向下连一条柱子&#xff0c;连到第一块板子&#xff0c;问你共要多少长度的柱子 解题思路 枚举一个板子中间的柱子&#xff08;即对这些柱子可能有贡献&#xff09; 然后取一个最高的立即可…

位运算及其性质

定义 运算名符号效果按位与&如果两个相应的二进制位都为1&#xff0c;则该位的结果值为1&#xff0c;否则为0按位或l两个相应的二进制位中只要有一个为1&#xff0c;该位的结果值为1按位异或^若参加运算的两个二进制位值相同则为0&#xff0c;否则为1取反~对一个二进制数按…

C Looooops POJ - 2115

C Looooops POJ - 2115 题目&#xff1a; A Compiler Mystery: We are given a C-language style for loop of type statement; I.e., a loop which starts by setting variable to value A and while variable is not equal to B, repeats statement followed by increasing …

IdentityServer4实战 - 谈谈 JWT Token 的安全策略

一.前言众所周知&#xff0c;IdentityServer4 默认支持两种类型的 Token&#xff0c;一种是 Reference Token&#xff0c;一种是 JWT Token 。前者的特点是 Token 的有效与否是由 Token 颁发服务集中化控制的&#xff0c;颁发的时候会持久化 Token&#xff0c;然后每次验证都需…

P4320-道路相遇,P5058-[ZJOI2004]嗅探器【圆方树,LCA】

两题差不多就一起写了 P4320-道路相遇 题目链接:https://www.luogu.com.cn/problem/P4320 题目大意 nnn个点mmm条边的一张图&#xff0c;qqq次询问两个点之间路径的必经点数量。 解题思路 建出圆方树然后问题就变为询问两个点之间路径的圆点数量&#xff0c;可以直接倍增L…

【Manacher】绿绿和串串(luogu 5446)

正题 luogu 5446 题目大意 定义对折为&#xff1a;以最后一个字符为对称轴翻转 问你一个字符串可能是由那些前缀对折若干次而来的 解题思路 先用Manacher求出回文长度 那么满足以下条件之一的前缀就是可行方案 最后一个字符的回文长度加上它的位置为n&#xff08;后面若干…

使用.Net Core实现FNV分布式hash一致性算法

说到FNV哈希算法不得不提Memcached&#xff0c;我们先简单介绍一下Memcached。MemcachedMemcached分为客户端与服务端&#xff0c;Memcached是服务端&#xff0c;服务端本身不提供分布式实现&#xff0c;只是一个单独的k-v缓存&#xff1b;Memcached的分布式是在客户端类库中实…

一起开心暑假集训第一周限时训练 2020/7/5

文章目录A - Goldbachs Conjecture POJ - 2262B - 同余方程 计蒜客 - T2010C - Tr A HDU - 1575D - C Looooops POJ - 2115vjudge试题集链接 A - Goldbach’s Conjecture POJ - 2262 试题链接&#xff1a; 线性筛先预处理&#xff0c;然后判断就行 #include<iostream>…

P5631-最小mex生成树【线段树,并查集】

正题 题目链接:https://www.luogu.com.cn/problem/P5631 题目大意 nnn个点mmm条边的一张图&#xff0c;求mexmexmex值最小的一棵生成树。 解题思路 考虑比较暴力的做法&#xff0c;枚举答案&#xff0c;然后判断其他边能否构成一棵生成树。 发现一条边会被重复加入多次&…

【Manacher】【贪心】字符串连接(金牌导航 Manacher-4)

正题 金牌导航 Manacher-4 题目大意 给出一个字符串&#xff0c;让你用最少的回文串连接得到该串&#xff08;这里连接是可以有重合的&#xff09; 解题思路 先用Manacher求出以x为左端点的回文串右端点最大的位置 然后在当前回文串中贪心求下一回文串的右端点 代码 #incl…

[XSY4197] Snow(树形DP)

我们在树上的每个点iii上放aia_iai​个小点&#xff0c;初始时先让每个点单独减&#xff0c;这样要花费aia_iai​之和的次数。 然后尝试把某些减合并。一个点上面的小点至多可以向两个相邻的小点连边&#xff08;这两个小点不能在同一个点上&#xff09;。每连一条边&#xff…

Followme Devops实践之路

引言天下武功,唯快不破想要提高开发团队效率&#xff0c;势必要有一套完整而成熟的开发流程方案&#xff0c;除了sprint迭代开发模式之外,还有近几年流行的devops流程,都是可以大幅度提高开发效率的工具. 我们团队也不断探索、实践&#xff0c;最终形成了现有的一套体系&#x…

【每日一题】6月30日 Growth

来源&#xff1a; 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 1048576K&#xff0c;其他语言2097152K 64bit IO Format: %lld文章目录题目描述题解&#xff1a;代码&#xff1a;题目描述 弱弱有两个属性a和b&#xff0c;这两个属性初始的时…

P5445-[APIO2019]路灯【set,树状数组套线段树】

正题 题目链接:https://www.luogu.com.cn/problem/P5445 题目大意 n1n1n1个点&#xff0c;iii和i1i1i1个点之间有一条边&#xff0c;qqq个操作 断开/连接第xxx和x1x1x1之间的边询问目前为止aaa和bbb点在多少个操作后是联通的&#xff08;包括开始前&#xff09; 解题思路 粗…

【dfs】【hash】有趣的英语角(2015特长生 T2/luogu 1019)

正题 luogu 1019 题目大意 给你若干个词语&#xff0c;让你把他们连起来&#xff08;重复段叠在一起&#xff09;&#xff0c;每个词语最多用两次&#xff0c;问你该串最长是多少 解题思路 dfs枚举一个单词后面接哪个单词&#xff0c;然后枚举重叠长度&#xff0c;再用hash判…

基环树小记

概念 基环树就是有n个点n条边的图&#xff08;比树多出现一个环&#xff09;。 特殊形态的基环树 无向树(N点N边无向图) 外向树(每个点只有一条入边) 内向树(每个点只有一条出边) 以上三种树有十分优秀的性质&#xff0c;就是可以直接将环作为根。就可以对每个环的子树进行单…

【每日一题】7月1日题目精讲 借教室

来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 131072K&#xff0c;其他语言262144K 64bit IO Format: %lld文章目录题目描述题解&#xff1a;差分&#xff1a;二分&#xff1a;整合代码&#xff1a;题目描述 在大学期…

利用BenchmarkDotNet 测试 .Net Core API 同步和异步方法性能

事由&#xff1a;这两天mentor给我布置了个任务让我用BenchmarkDotNet工具去测试一下同一个API 用同步和异步方法写性能上有什么差别。顺带提一下&#xff1a;啊啊啊啊 等我仔细看文档的时候文档 发现它让我用Release的模式去运行benchmark。 emmm...其实我之前一直在用Debug模…

CF280C-Game on Tree【数学期望】

正题 题目链接:https://www.luogu.com.cn/problem/CF280C 题目大意 nnn个点的一棵树&#xff0c;每次选择一个没有染色的点把它和它的子树染黑&#xff0c;求期望全部染黑的步数。 解题思路 可以理解为我们按照一个顺序轮流染色&#xff0c;如果一个点有祖先节点在它前面就不…

糊涂的教授(2015特长生 T3)

题目大意 平面上有n个矩阵&#xff0c;和n个数字&#xff0c;对于每个矩阵选择矩阵内的一个数字作为编号&#xff0c;让你给出唯一方案&#xff0c;使每个数字只作为一个矩阵的编号&#xff08;多种方案即为不可行的&#xff09; 解题思路 因为多种方案是不可行的&#xff0c…