[51nod1237]最大公约数之和V3
$\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的更多相关文章
- 51nod1237 最大公约数之和 V3
题意:求 解: 最后一步转化是因为phi * I = Id,故Id * miu = phi 第二步是反演,中间省略了几步... 然后就这样A了......最终式子是个整除分块,后面用杜教筛求一下phi ...
- [51nod1237] 最大公约数之和 V3(杜教筛)
题面 传送门 题解 我好像做过这题-- \[ \begin{align} ans &=\sum_{i=1}^n\sum_{j=1}^n\gcd(i,j)\\ &=\sum_{d=1}^ ...
- 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 ...
- 51nod 1237 最大公约数之和 V3(杜教筛)
[题目链接] https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1237 [题目大意] 求[1,n][1,n]最大公约数之和 ...
- 51nod 1237 最大公约数之和 V3
求∑1<=i<=n∑1<=j<=ngcd(i,j) % P P = 10^9 + 7 2 <= n <= 10^10 这道题,明显就是杜教筛 推一下公式: 利用∑d ...
- 51nod1237 最大公约数之和
题目链接 题意 其实就是求 \[\sum\limits_{i=1}^n\sum\limits_{j=1}^ngcd(i,j)\] 思路 建议先看一下此题的一个弱化版 推一下式子 \[\sum\limi ...
- 51Nod.1237.最大公约数之和 V3(莫比乌斯反演 杜教筛 欧拉函数)
题目链接 \(Description\) \(n\leq 10^{10}\),求 \[\sum_{i=1}^n\sum_{j=1}^ngcd(i,j)\ mod\ (1e9+7)\] \(Soluti ...
- 【题解】最大公约数之和 V3 51nod 1237 杜教筛
题目传送门 http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1237 数学题真是做的又爽又痛苦,爽在于只要推出来公式基本上就 ...
- 51nod 1237 最大公约数之和 V3【欧拉函数||莫比乌斯反演+杜教筛】
用mu写lcm那道卡常卡成狗(然而最后也没卡过去,于是写一下gcd冷静一下 首先推一下式子 \[ \sum_{i=1}^{n}\sum_{j=1}^{n}gcd(i,j) \] \[ \sum_{i= ...
随机推荐
- Java课堂测试1第三阶段
package sizeyunsuan;//import java.util.Scanner;//import java.util.Random;import java.util.*; public ...
- Bootstrap移动端导航(简易)
效果 在线查看 代码少,都在HTML里 <!DOCTYPE html> <html lang="en"> <head> <meta cha ...
- 更好的 java 重试框架 sisyphus 配置的 2 种方式介绍
回顾 我们前面学习了 更好的 java 重试框架 sisyphus 入门简介 更好的 java 重试框架 sisyphus 背后的故事 这一节让我们一起学习下 sisyphus 基于函数式的配置和注解 ...
- TStor-OneCOS ,主打专一海量对象场景
谁能与你厮守终身 生活在21世纪,最常见的事莫过于更新换代了,找一款能长久适用的产品,是很多人都希望拥有的,特别是针对于云服务产品,而对象·混合云存储新增 TStor-OneCOS 就是这样一款可以 ...
- 新型活跃Mozi样本分析报告
基本信息 对象 值 文件名 Photo.scr 文件类型 PE32 executable for MS Windows (GUI) Intel 80386 32-bit 文件大小 6271259 by ...
- Spring 5 MVC 中的 Router Function 使用
Spring 5 发行已经好几年了,里面提出了好几个新点子.其中一个就是 RouterFunction,这是个什么东西呢? Spring框架给我们提供了两种http端点暴露方式来隐藏servlet原理 ...
- oracle物化视图创建及删除
--删除物化表的日志表 DROP MATERIALIZED VIEW LOG ON 表名; --为将要创建物化视图的表添加带主键的日志表 CREATE MATERIALIZED VIEW LOG ON ...
- Verdi Transaction Debug Mode 简单使用
转载:Verdi Transaction Debug Mode 简单使用_Holden_Liu的博客-CSDN博客 文档与源码: User Guide: Verdi_Transaction_and_P ...
- 编译内核错误:Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373
最近在编译一个新的rk sdk的时候,编译内核报错 CHK include/linux/version.h CHK include/generated/utsrelease.h make[1]: 'i ...
- binary-tree-preorder-traversal leetcode C++
Given a binary tree, return the preorder traversal of its nodes' values. For example: Given binary t ...