数论の一波流[长期更新]

Posted JZYshuraK_彧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数论の一波流[长期更新]相关的知识,希望对你有一定的参考价值。

[]

    题目大意:设$f(n)=\sum_{D=1}^{n}(\sum_{d|D}\cdot(\sum_{k=1}^{\frac{D}{d}}\varphi(k)\cdot\lfloor\frac{D}{d\cdot k}\rfloor))$,多次询问,求f(n)(mod 1000000007)的值。

    注释:t组询问,t<=$10^3$,n<=$10^7$。

      想法:首先,这题快恶心死我了,一上午啥他妈的也没干......

          开始我们的数论盛宴

      引理1:$\sum_{i|n}\varphi(i)=n$。证明:

        我们这个式子的意思是什么呢?看一下:如果我们枚举1到n,每一个数表示枚举最大公约数,那么,我们查询1到n中有多少数与n的最大公约数是 i 。若gcd( j , n ) = i  ,那么

$gcd(\frac{j}{i},\frac{n}{i})=1$。所以,每一个数算了且仅被算了一次,证毕。

      引理2:$\sum_{i=1}^n\sum_{j=1}^{\lfloor\frac n i\rfloor}\varphi(i)=\sum_{i=1}^{n}\sum_{j|i}\varphi(i)$ 。证明:啊啊啊,坑了我很久了啊有木有!!

        我们考虑前面的式子与后面的式子中的$\varphi(i)$的个数。考虑左式,每一个$\varphi(i)$都被算了$\lfloor\frac{n}{i}\rfloor$次,显然,这个式子表示n当中有多少个数是i的倍数,所以,每一个i都会且只会被它的倍数筛掉。也就是说它有多少个倍数就只会被筛多少次。那么,等价的,我们对于每一个数它的约数都会进行枚举,且枚举次数是一定相等的,证毕。

以上是关于数论の一波流[长期更新]的主要内容,如果未能解决你的问题,请参考以下文章

jackson 使用长期更新

寒假代更新计划

模板整理 (施工中 2017.8.21更新)

ruby 写真/动画の作成日/更新日情报を的Exifの情报に置换する

html 更新情报のリスト[通常版]

sql データの更新,変更を同时に