题面

传送门

题解

嗯……还是懒得写了……这里

//minamoto
#include<bits/stdc++.h>
#define R register
#define IT map<int,int>::iterator
#define fp(i,a,b) for(R int i=a,I=b+1;i<I;++i)
#define fd(i,a,b) for(R int i=a,I=b-1;i>I;--i)
#define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
using namespace std;
const int N=1e6+5,P=1e9+7,inv2=500000004;
bitset<N>vis;int p[N],mu[N],f[N],g[N],m,sqr,n;map<int,int>mp;
inline int add(R int x,R int y){return x+y>=P?x+y-P:x+y;}
inline int dec(R int x,R int y){return x-y<0?x-y+P:x-y;}
inline int mul(R int x,R int y){return 1ll*x*y-1ll*x*y/P*P;}
inline int calc(R int x){return (1ll*x*(x+1)>>1)%P;}
void init(int n){
f[1]=1;
fp(i,2,n){
if(!vis[i])p[++m]=i,mu[i]=P-1;
for(R int j=1;j<=m&&1ll*i*p[j]<=n;++j){
vis[i*p[j]]=1;
if(i%p[j]==0)break;
mu[i*p[j]]=P-mu[i];
}
}
fp(i,2,n)f[i]=add(f[i-1],mul(mu[i],i));
fp(i,1,n)for(R int j=i;j<=n;j+=i)g[j]=add(g[j],i);
fp(i,2,n)g[i]=add(g[i-1],g[i]);
}
int F(int n){
if(n<=sqr)return f[n];
IT it=mp.find(n);
if(it!=mp.end())return it->second;
int res=1,las=1,now;
for(int i=2,j;i<=n;i=j+1)
j=n/(n/i),now=calc(j),res=dec(res,mul(now-las+P,F(n/i))),las=now;
return mp[n]=res;
}
int G(int n){
if(n<=sqr)return g[n];
int res=0,las=0,now;
for(R int i=1,j;i<=n;i=j+1)
j=n/(n/i),now=calc(j),res=add(res,mul(now-las+P,n/i)),las=now;
return res;
}
int main(){
// freopen("testdata.in","r",stdin);
scanf("%d",&n),init(sqr=N-5);
int res=0,las=0,now,x;
for(R int i=1,j;i<=n;i=j+1)
j=n/(n/i),now=F(j),x=G(n/i),res=add(res,mul(now-las+P,mul(x,x))),las=now;
printf("%d\n",res);
return 0;
}

[51nod1220] 约数之和(杜教筛+莫比乌斯反演)的更多相关文章

  1. [51Nod 1237] 最大公约数之和 (杜教筛+莫比乌斯反演)

    题目描述 求∑i=1n∑j=1n(i,j) mod (1e9+7)n<=1010\sum_{i=1}^n\sum_{j=1}^n(i,j)~mod~(1e9+7)\\n<=10^{10}i ...

  2. BZOJ_4176_Lucas的数论_杜教筛+莫比乌斯反演

    BZOJ_4176_Lucas的数论_杜教筛+莫比乌斯反演 Description 去年的Lucas非常喜欢数论题,但是一年以后的Lucas却不那么喜欢了. 在整理以前的试题时,发现了这样一道题目“求 ...

  3. 51NOD 1220 约数之和 [杜教筛]

    1220 约数之和 题意:求\(\sum_{i=1}^n \sum_{j=1}^n \sigma_1(ij)​\) \[ \sigma_0(ij) = \sum_{x\mid i}\sum_{y\mi ...

  4. 【XSY2731】Div 数论 杜教筛 莫比乌斯反演

    题目大意 定义复数\(a+bi\)为整数\(k\)的约数,当且仅当\(a\)和\(b\)为整数且存在整数\(c\)和\(d\)满足\((a+bi)(c+di)=k\). 定义复数\(a+bi\)的实部 ...

  5. [CQOI2015][bzoj3930] 选数 [杜教筛+莫比乌斯反演]

    题面: 传送门 思路: 首先我们把区间缩小到$\left[\lfloor\frac{L-1}{K}\rfloor,\lfloor\frac{R}{K}\rfloor\right]$ 这道题的最特殊的点 ...

  6. [bzoj 4176] Lucas的数论 (杜教筛 + 莫比乌斯反演)

    题面 设d(x)d(x)d(x)为xxx的约数个数,给定NNN,求 ∑i=1N∑j=1Nd(ij)\sum^{N}_{i=1}\sum^{N}_{j=1} d(ij)i=1∑N​j=1∑N​d(ij) ...

  7. [51Nod 1220] - 约数之和 (杜教筛)

    题面 令d(n)d(n)d(n)表示nnn的约数之和求 ∑i=1n∑j=1nd(ij)\large\sum_{i=1}^n\sum_{j=1}^nd(ij)i=1∑n​j=1∑n​d(ij) 题目分析 ...

  8. bzoj 4916: 神犇和蒟蒻 (杜教筛+莫比乌斯反演)

    题目大意: 读入n. 第一行输出“1”(不带引号). 第二行输出$\sum_{i=1}^n i\phi(i)$. 题解: 所以说那个$\sum\mu$是在开玩笑么=.= 设$f(n)=n\phi(n) ...

  9. 51 NOD 1244 莫比乌斯函数之和(杜教筛)

    1244 莫比乌斯函数之和 基准时间限制:3 秒 空间限制:131072 KB 分值: 320 难度:7级算法题 收藏 关注 莫比乌斯函数,由德国数学家和天文学家莫比乌斯提出.梅滕斯(Mertens) ...

随机推荐

  1. Windows10:怎么安装whl文件

    whl格式本质上是一个压缩包,里面包含了py文件,以及经过编译的pyd文件.使得可以在不具备编译环境的情况下,选择合适自己的python环境进行安装.安装方法很简单,进入命令行输入pip instal ...

  2. uptime命令查看系统启动时间和运行时间、查看linux系统负载

    1.uptime命令输出:16:11:40 up 59 days, 4:21, 2 users, load average: 0.00, 0.01, 0.00 2.查看/proc/uptime文件计算 ...

  3. Oracle 静默安装的db_install.rsp 文件

    Oracle 静默安装的db_install.rsp 文件,已修改好值 ################################################################ ...

  4. ruby中nil?, empty? and blank?

    In Ruby, you check with nil? if an object is nil: article = nil article.nil? # => true empty? che ...

  5. pyodbc连接MySQL数据库

    1:Python安装pyodbc:pip install pyodbc 2:安装unixODBC-2.3.4.tar.gz ./configure make make install 3:下载基于py ...

  6. springmvc下的省市县三级联动

    转自:https://blog.csdn.net/rentian1/article/details/77662635

  7. C++下基本类型所占位数和取值范围

    原文:http://hi.baidu.com/magicdemon/blog/item/821b2e22d7df494cad34debd.html C++下基本类型所占位数和取值范围: 符号属性    ...

  8. NIO/AIO

    1 NIO NEW IO 的简称,新的java I/O标准,jdk1.4纳入,有以下特点: (1)NIO基于block块,以块(硬盘数据块)为单位处理数据,比旧式的io基于流的效率高. (2)为各个基 ...

  9. jQuery选择器大全整理

    一.选择网页元素 $(document) //选择整个文档对象 $('#myId') //选择ID为myId的网页元素 $('div.myClass') // 选择class为myClass的div元 ...

  10. 【总结整理】arcgis js api的Map类

    关于ArcGis for javascrept之Map类   ArcGis for javascrept_ESRI_Map类:  1. 构造方法:esri.Map(); 参数: extent 如果设置 ...