題意:
定義$f_(n)$為所有小於n且與n互質的正整數的d次方之和。
給定$d,n=\prod \limits_^^}}$,求$f_(n)$對$10^+7$取模的值。
$d\leq 100,w\leq 1000,p_,a_\leq 10^9$。
題解:先簡單的整理一下式子,所求式為
$f_(n)=\sum \limits_^}$
$=\sum \limits_^ \sum \limits_}$
$=\sum \limits_^}}}$
$=\sum \limits_ \sum \limits_^}}}$
根據伯努利數那套推論,$\sum \limits_^}$是乙個以n為自變數的d+1次函式(多項式)。
於是我們先用$lagrange$插值把這個多項式的係數插出來,設其為$f(x)=\sum \limits_^}$。
然後繼續推,所求式為
$=\sum \limits_f(\frac)}$
$=\sum \limits_ \sum \limits_^)^}}$
$=\sum \limits_^(\frac)^}}$
根據狄利克雷卷積那套推論,如果$f(n)=\sum \limits_)}$,且f和g都是積性函式,那麼f也是積性函式。
(積性函式:若$(a,b)=1$,則$f(ab)=f(a)f(b)$)
觀察一下,$\mu(c),c^,(\frac)^$都是積性函式。
於是我們只需要算每個$n=p_^}$處的$\sum \limits_(\frac)^}$,然後乘起來即可。
注意到$\mu(c)$只在$c=1,p_$的時候不為0,所以有用的c就倆值,直接暴力算即可。
由於$d\leq 100$,算$f_i$的時候直接暴力算即可,總複雜度$o(d^+dw\log})$。
(注意快速冪的時候一定不要把次數取模,不要把次數取模,不要把次數取模!tat)
套路:**:
#include#define maxn 205乙個人的數論#define maxm 500005
#define inf 0x7fffffff
#define mod 1000000007
#define ll long long
#define rint register ll
#define debug(x) cerr<
namespace
std;
struct
pointp[maxn];
struct
poly
poly
operator+(const poly b)const
poly
operator*(const poly b)const
poly
operator^(const ll b)const
};ll p[maxm],al[maxm];
inline ll read()
inline ll pw(ll a,ll b)
inline ll inv(ll x)
inline poly lagrange(ll n)
res=res+(f^p[i].y);
}return
res;
}int
main()
ans=(ans+gi*f.a[i]%mod)%mod;
}printf(
"%lld\n
",ans);
return0;
}
乙個人的快樂
生活在這紛擾喧囂的世界,有時真的需要有自己獨處的空間。可以放飛自己的心靈,什麼都可以想,什麼都可以不想。一人獨處靜美隨之而來,清靈隨之而來,溫馨隨之而來 一人獨處的時候,貧窮也富有,寂寞也溫柔。可以漫步到水邊,佇立在無聲的空曠中,感受乙份清靈。讓心靈遠離塵囂紛亂的世界 默默的體驗花香,聆聽鳥鳴。欣賞...
乙個人的煙火
昨天是正月十五,好日子。月色撩人,我的心也被撩的亂七八糟的 回頭想想,我來大連已經六年了,可饒有興致的去看正月十五星海廣場的煙火表演,還真是是第一次 我喜歡安靜的生活,所以我很少出現在這樣人潮湧動的地方.也只有這樣擁擠的地方,體驗那種被人群包圍的感覺,我才多少能感受到自己的存在.過去的幾個月,我過的...
乙個人的戀愛
那時,走到教室總是會眼巴巴的盼望著你的到來 那時,總是有事沒事喜歡找你,和你膩在一起 那時,覺得你會成為我的全部 可是,很快就證明這只是我一廂情願。這時,我開始逃避,逃避打水那條必經路上的相遇 逃避碰見你們宿舍樓下的狂吻。但是,又會經過你們宿舍樓時有意無意的抬頭看看你們的陽台 又會在人群中尋找你的身...