P6271 [湖北省队互测2014]一个人的数论(莫比乌斯反演,拉格朗日插值)

Posted 繁凡さん

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P6271 [湖北省队互测2014]一个人的数论(莫比乌斯反演,拉格朗日插值)相关的知识,希望对你有一定的参考价值。

整理的算法模板合集: ACM模板

点我看算法全家桶系列!!!

实际上是一个全新的精炼模板整合计划


P6271 [湖北省队互测2014]一个人的数论(莫比乌斯反演,拉格朗日插值)

Problem

在这里插入图片描述

Solution

首先根据题意列出答案的暴力表达式:
a n s = ∑ i = 1 n [ g c d ( i , n ) = 1 ] i d ans=\\sum\\limits_{i=1}^n[gcd(i,n)=1]i^d ans=i=1n[gcd(i,n)=1]id

显然没法直接算,考虑套路莫反

a n s = ∑ i = 1 n [ g c d ( i , n ) = 1 ] i d = ∑ i = 1 n ∑ t ∣ i  and  t ∣ n μ ( t ) i d = ∑ i = 1 n ∑ t ∣ n μ ( t ) i d [ t   ∣   i ] i ⇒ i × t = ∑ t ∣ n μ ( t ) ∑ i = 1 n t ( i × t ) d = ∑ t ∣ n μ ( t ) t d ∑ i = 1 n t i d \\begin{aligned}ans&=\\sum\\limits_{i=1}^n[gcd(i,n)=1]i^d&\\\\& =\\sum\\limits_{i=1}^n\\sum\\limits_{t|i \\ \\text{and}\\ t|n}\\mu(t)i^d&\\\\& =\\sum\\limits_{i=1}^n\\sum\\limits_{t|n}\\mu(t)i^d[t\\ |\\ i]&\\\\& i \\Rightarrow i\\times t &\\\\&=\\sum\\limits_{t|n}\\mu(t)\\sum\\limits_{i=1}^{\\frac{n}{t}}(i\\times t)^d&\\\\& =\\sum\\limits_{t|n}\\mu(t)t^d\\sum\\limits_{i=1}^{\\frac{n}{t}}i^d \\end{aligned} ans=i=1n[gcd(i,n)=1]id=i=1nti and tnμ(t)id=i=1ntnμ(t)id[t  i]ii×t=tnμ(t)i=1tn(i×t)d=tnμ(t)tdi=1tnid

显然 ∑ i = 1 n t i d \\sum\\limits_{i=1}^{\\frac{n}{t}}i^d i=1tnid 是自然数幂之和,可以将其表示为一个关于 n t \\dfrac{n}{t} tn d + 1 d+1 d+1 次多项式 ∑ i = 0 d + 1 f i ( n t ) i \\sum\\limits_{i=0}^{d+1}f_i(\\dfrac{n}{t})^i i=0d+1fi(tn)i,我们可以算出自然数幂之和的前 d + 2 d+2 d+2 项, d + 2 d+2 d+2 项可以确定一个 d + 1 d+1 d+1 项的多项式,我们可以直接用拉格朗日插值法 O ( n ) O(n) O(n) 求出 n n n 次多项式 f f f 的所有系数。

即:

a n s = ∑ t ∣ n μ ( t ) t d ∑ i = 0 d + 1 f i ( n t ) i = ∑ t ∣ n μ ( t ) ∑ i = 0 d + 1 f i n i t d − i = ∑ i = 0 d + 1 ∑ t ∣ n μ ( t ) f i n i t d − i = ∑ i = 0 d + 1 f i n i ∑ t ∣ n μ ( t ) t d − i \\begin{aligned}ans&=\\sum\\limits_{t|n}\\mu(t)t^d\\sum\\limits_{i=0}^{d+1}f_i(\\frac{n}{t})^i&\\\\& =\\sum\\limits_{t|n}\\mu(t)\\sum\\limits_{i=0}^{d+1}f_in^it^{d-i}&\\\\& =\\sum\\limits_{i=0}^{d+1}\\sum\\limits_{t|n}\\mu(t)f_in^it^{d-i}&\\\\&=\\sum\\limits_{i=0}^{d+1}f_in^i\\sum\\limits_{t|n}\\mu(t)t^{d-i}\\end{aligned} ans=tnμ(t)tdi=0d+1fi(tn)i=tnμ(t)i=0d+1finitdi=i=0d+1tnμ(t)fin<

以上是关于P6271 [湖北省队互测2014]一个人的数论(莫比乌斯反演,拉格朗日插值)的主要内容,如果未能解决你的问题,请参考以下文章

P6272 [湖北省队互测2014]没有人的算术

bug运输[辽宁2014年省队互测一]

货车运输[辽宁2014年省队互测一]

FJoi2017 1月21日模拟赛 comparison(平衡树+thita重构)

BZOJ2818Gcd 欧拉筛

数论 Day2基础归纳法 题解