通过作差可以发现答案是一个 k+1 次多项式的形式,因此想到 Lagrange 插值。将 xi=i(0≤i≤n)带入,有:
===i=0∑nyij=i∏i−jx−ji=0∑nyi(j=0∏i−1i−jx−jj=i+1∏ni−jx−j)i=0∑nyi(j=0∏i−1(x−j)j=i+1∏n(x−j)j=0∏i−1i−j1j=i+1∏ni−j1)i=0∑nyi(−1)n−ix!1(n−x+2)!1j=0∏i+1(x−j)j=i+1∏n(x−j)
后面这两个 ∏ 一看就很能预处理,而前面的显然可以直接算。时间复杂度为 O(nlogn)。注意到 ik 是积性函数,所以使用线性筛可以将其优化至严格 O(n) 求解。
喜欢的话,留下你的评论吧~