$\sum_{i=1}^{n}\sum_{j=1}^{n}gcd(i,j)\\$

$=\sum_{d=1}^{n}d\sum_{i=1}^{n/d}\sum_{j=1}^{n/d}\varepsilon(gcd(i,j))$

$=\sum_{d=1}^{n}d\sum_{g=1}^{n/d}\mu(g)\cdot (n/d/t)^{2}$

$=\sum_{T=1}^{n}(n/T)^{2}\sum_{d|T}\mu(T/d)\cdot d$

$=\sum_{T=1}^{n}(n/T)^2\cdot \varphi(T)$

对其数论分块,即求一段区间内$\varphi$的和,可以用杜教筛来做

设$f(i)=\sum_{j=1}^{i}\varphi(j)$,根据$\varphi*I=id$,即$f(n)=(n+1)n/2-\sum_{i=2}^{n}f(n/i)$

 1 #include<bits/stdc++.h>
2 #include<tr1/unordered_map>
3 using namespace std;
4 #define ll long long
5 #define mod 1000000007
6 #define N 5000005
7 tr1::unordered_map<ll,ll>mat;
8 ll n,ans,cp[N],vis[N],p[N];
9 ll djs(ll n){
10 if (n<=N-5)return cp[n];
11 if (mat[n])return mat[n];
12 ll ans=n%mod*((n+1)%mod)%mod*(mod/2+1)%mod;
13 for(ll i=2,j;i<=n;i=j+1){
14 j=n/(n/i);
15 ans=(ans-(j-i+1)%mod*djs(n/i)%mod+mod)%mod;
16 }
17 return mat[n]=ans;
18 }
19 int main(){
20 scanf("%lld",&n);
21 cp[1]=1;
22 for(int i=2;i<=N-5;i++){
23 if (!vis[i])cp[p[++p[0]]=i]=i-1;
24 for(int j=1;j<=p[0];j++){
25 if (i*p[j]>N-5)break;
26 vis[i*p[j]]=1;
27 if (i%p[j])cp[i*p[j]]=cp[i]*(p[j]-1);
28 else{
29 cp[i*p[j]]=cp[i]*p[j];
30 break;
31 }
32 }
33 }
34 for(int i=2;i<=N-5;i++)cp[i]=(cp[i]+cp[i-1])%mod;
35 for(ll i=1,j;i<=n;i=j+1){
36 j=n/(n/i);
37 ans=(ans+(djs(j)-djs(i-1)+mod)%mod*(n/i%mod)%mod*(n/i%mod))%mod;
38 }
39 printf("%lld",ans);
40 }

[51nod1237]最大公约数之和V3的更多相关文章

  1. 51nod1237 最大公约数之和 V3

    题意:求 解: 最后一步转化是因为phi * I = Id,故Id * miu = phi 第二步是反演,中间省略了几步... 然后就这样A了......最终式子是个整除分块,后面用杜教筛求一下phi ...

  2. [51nod1237] 最大公约数之和 V3(杜教筛)

    题面 传送门 题解 我好像做过这题-- \[ \begin{align} ans &=\sum_{i=1}^n\sum_{j=1}^n\gcd(i,j)\\ &=\sum_{d=1}^ ...

  3. 51NOD 1237 最大公约数之和 V3 [杜教筛]

    1237 最大公约数之和 V3 题意:求\(\sum_{i=1}^n\sum_{j=1}^n(i,j)\) 令\(A(n)=\sum_{i=1}^n(n,i) = \sum_{d\mid n}d \c ...

  4. 51nod 1237 最大公约数之和 V3(杜教筛)

    [题目链接] https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1237 [题目大意] 求[1,n][1,n]最大公约数之和 ...

  5. 51nod 1237 最大公约数之和 V3

    求∑1<=i<=n∑1<=j<=ngcd(i,j) % P P = 10^9 + 7 2 <= n <= 10^10 这道题,明显就是杜教筛 推一下公式: 利用∑d ...

  6. 51nod1237 最大公约数之和

    题目链接 题意 其实就是求 \[\sum\limits_{i=1}^n\sum\limits_{j=1}^ngcd(i,j)\] 思路 建议先看一下此题的一个弱化版 推一下式子 \[\sum\limi ...

  7. 51Nod.1237.最大公约数之和 V3(莫比乌斯反演 杜教筛 欧拉函数)

    题目链接 \(Description\) \(n\leq 10^{10}\),求 \[\sum_{i=1}^n\sum_{j=1}^ngcd(i,j)\ mod\ (1e9+7)\] \(Soluti ...

  8. 【题解】最大公约数之和 V3 51nod 1237 杜教筛

    题目传送门 http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1237 数学题真是做的又爽又痛苦,爽在于只要推出来公式基本上就 ...

  9. 51nod 1237 最大公约数之和 V3【欧拉函数||莫比乌斯反演+杜教筛】

    用mu写lcm那道卡常卡成狗(然而最后也没卡过去,于是写一下gcd冷静一下 首先推一下式子 \[ \sum_{i=1}^{n}\sum_{j=1}^{n}gcd(i,j) \] \[ \sum_{i= ...

随机推荐

  1. 树莓派3B上手一二

    树莓派3B上手一二 早些时间心血来潮买过一个树莓派,但是当时只是玩一玩,买来按照网上的教程摆弄了一下就闲置了.最近毕业设计,做时序数据分析的相关的工作,刚好想起能够用到树莓派+Node-RED来生成模 ...

  2. 七牛云的 python sdk 是如何 批量删除资源的

    今天做项目的时候用到七牛云,关于对资源的操作是在后端做的,用的SDK,但是,在网上没找到详细的解析,官方文档也没有太详细的解说,所以无奈只好看下源码 这里做一下简单的记录 from qiniu imp ...

  3. 告别Vuex,发挥compositionAPI的优势,打造Vue3专用的轻量级状态

    Vuex 的遗憾 Vuex 是基于 Vue2 的 option API 设计的,因为 optionAPI 的一些先天问题,所以导致 Vuex 不得不用各种方式来补救,于是就出现了 getter.mut ...

  4. CAM 模板样式表

    视图 模板类型 模板子类型 类型 子类型 刀具类型 刀具子类型 加工工序 mill_planar FACE_MILLING_AREA 100 261     加工工序 mill_planar FACE ...

  5. 请问:c语言中d=1/3*3.0;与d=1.0/3*3;d=?有什么区别

    请问:c语言中d=1/33.0;与d=1.0/33;d=?有什么区别 d=1/33.0; 这时d=0,d=(1/3)3.0,这里1是整形,1/3也是整形,等于0,所以03.0=0 d=1.0/33; ...

  6. Noip模拟59 2021.9.22

    新机房首模拟变倒数 T1 柱状图 关于每一个点可以做出两条斜率分别为$1,-1$的直线, 然后题意转化为移动最少的步数使得所有点都在某一个点的两条直线上 二分出直线的高度,判断条件是尽量让这条直线上部 ...

  7. QEvent

    QEvent类是所有事件类的基类,每一个对象都包含事件参数.Qt的主事件循环(QCoreApplication::exec())从事件队列中接收本地窗口系统的事件,并将它们翻译成QEvent,将这些事 ...

  8. PCB设计中新手和老手都适用的七个基本技巧和策略

    本文将讨论新手和老手都适用的七个基本(而且重要的)技巧和策略.只要在设计过程中对这些技巧多加注意,就能减少设计回炉次数.设计时间和总体诊断难点. 技巧一:注重研究制造方法和代工厂化学处理过程 在这个无 ...

  9. 如何用PADS进行PCB设计?这6步就够了

    在使用PADS进行PCB设计的过程中,需要对印制板的设计流程以及相关的注意事项进行重点关注,这样才能更好的为工作组中的设计人员提供系统的设计规范,同时也方便设计人员之间进行相互的交流和检查. 02 设 ...

  10. JVM:Hotspot虚拟机中的对象

    在HotSpot虚拟机中,对象在内存中存储的布局可以被分为3个区域:对象头(Header).实例数据(Instance data)和对齐填充(Padding).对象头包括两部分信息,第一部分存储自身的 ...