[国家集训队]Crash的数字表格 / JZPTAB

题意

求\(\sum\limits_{i=1}^n\sum\limits_{j=1}^mlcm(i,j)\),\(n,m\le 10^7\)


鉴于我式子没推出来,所以再推一遍。

\[\sum\limits_{i=1}^n\sum\limits_{j=1}^mlcm(i,j)
\]

\[=\sum\limits_{i=1}^n\sum\limits_{j=1}^m\frac{ij}{gcd(i,j)}
\]

\[=\sum\limits_{i=1}^n\sum\limits_{j=1}^m ij\sum_{k=1}^{min(i,j)}\frac{1}{k}[gcd(i,j)=k]
\]

\[=\sum_{k=1}^{min(n,m)}\frac{1}{k}\sum_{i=1}^n\sum_{j=1}^mij[gcd(i,j)=k]
\]

\[=\sum_{k=1}^{min(n,m)}k\sum_{i=1}^{\lfloor\frac{n}{k}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{k}\rfloor}ij[gcd(i,j)=1]
\]

\[=\sum_{k=1}^{min(n,m)}k\sum_{i=1}^{\lfloor\frac{n}{k}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{k}\rfloor}ij\sum_{d=1}^{min(i,j)}\mu(d)[gcd(i,j)=d]
\]

\[=\sum_{k=1}^{min(n,m)}k\sum_{d=1}^{min(\lfloor\frac{n}{k}\rfloor,\lfloor\frac{m}{k}\rfloor)}\mu(d)d^2\sum_{i=1}^{\lfloor\frac{n}{kd}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{kd}\rfloor}ij
\]

令$g(x)=\frac{(x+1)x}{2}$

\[=\sum_{k=1}^{min(n,m)}k\sum_{d=1}^{min(\lfloor\frac{n}{k}\rfloor,\lfloor\frac{m}{k}\rfloor)}\mu(d)d^2g(\lfloor\frac{n}{kd}\rfloor)g(\lfloor\frac{m}{kd}\rfloor)
\]

令$T=kd$

\[=\sum_{T=1}^{min(n,m)}g(\lfloor\frac{n}{T}\rfloor)g(\lfloor\frac{m}{T}\rfloor)\sum_{kd=T}kd^2\mu(d)
\]

\[=\sum_{T=1}^{min(n,m)}g(\lfloor\frac{n}{T}\rfloor)g(\lfloor\frac{m}{T}\rfloor)T\sum_{d|T}d\mu(d)
\]

设\(f(n)=\sum_{d|n}d\mu(d)\)

研究一下\(\tt{Ta}\)的性质,设\(p\)代表一个质数。

有\(f(p)=1-p,f(p^n)=f(p)\),\(f(n)\)是一个积性函数。

所以我们可以在线筛的时候把这个函数\(O(n)\)筛出来。

前面整除分块一下就可以了。

总复杂度\(O(\sqrt n+n)\)


Code:

#include <cstdio>
#define ll long long
const ll mod=20101009;
const int N=1e7;
int pri[N+10],ispri[N+10],cnt;
ll g[N+10];
#define f(x) (((x)+1)*(x)/2%mod)
void init()
{
g[1]=1;
for(int i=2;i<=N;i++)
{
if(!ispri[i])
{
g[i]=1-i;
pri[++cnt]=i;
}
for(int j=1;j<=cnt&&pri[j]*i<=N;j++)
{
ispri[pri[j]*i]=1;
if(i%pri[j]==0){g[pri[j]*i]=g[i];break;}
else g[pri[j]*i]=g[i]*g[pri[j]]%mod;
}
}
for(int i=1;i<=N;i++) g[i]*=i%=mod,(g[i]+=g[i-1])%mod;
}
ll min(ll a,ll b){return a<b?a:b;}
int main()
{
init();
ll ans=0,n,m;
scanf("%lld%lld",&n,&m);
for(ll l=1,r;l<=min(n,m);l=r+1)
{
r=min(n/(n/l),m/(m/l));
(ans+=f(n/l)*f(m/l)%mod*(g[r]-g[l-1]))%=mod;
}
printf("%lld\n",(ans+mod)%mod);
return 0;
}

2018.10.26

洛谷 P1829 [国家集训队]Crash的数字表格 / JZPTAB 解题报告的更多相关文章

  1. 洛谷P1829 [国家集训队]Crash的数字表格 / JZPTAB(莫比乌斯反演)

    题目背景 提示:原 P1829 半数集问题 已经迁移至 P1028 数的计算 题目描述 今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple).对于两个正整数a ...

  2. 洛谷P1829 [国家集训队]Crash的数字表格 / JZPTAB(莫比乌斯反演)

    传送门 式子好麻烦orz……大佬好腻害orz->这里 //minamoto #include<iostream> #include<cstdio> #define ll ...

  3. 洛谷 P1829 [国家集训队]Crash的数字表格 / JZPTAB(莫比乌斯反演)

    题意:求$\sum_{i=1}^{n}\sum_{j=1}^{m}lcm(i,j)$. 开始开心(自闭)化简: $\sum_{i=1}^{n}\sum_{j=1}^{m}lcm(i,j)$ =$\su ...

  4. 洛谷P1829 [国家集训队]Crash的数字表格

    题目描述 今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple).对于两个正整数a和b,LCM(a, b)表示能同时整除a和b的最小正整数.例如,LCM(6, ...

  5. [Luogu P1829] [国家集训队]Crash的数字表格 / JZPTAB (莫比乌斯反演)

    题面 传送门:洛咕 Solution 调到自闭,我好菜啊 为了方便讨论,以下式子\(m>=n\) 为了方便书写,以下式子中的除号均为向下取整 我们来颓柿子吧qwq 显然,题目让我们求: \(\l ...

  6. P1829 [国家集训队]Crash的数字表格 / JZPTAB

    推式子太快乐啦!虽然我好蠢而且dummy和maomao好巨(划掉) 思路 莫比乌斯反演的题目 首先这题有\(O(\sqrt n)\)的做法但是我没写咕咕咕 然后就是爆推一波式子 \[ \sum_{i= ...

  7. P1829 [国家集训队]Crash的数字表格 / JZPTAB 莫比乌斯反演

    又一道...分数和取模次数成正比$qwq$ 求:$\sum_{i=1}^N\sum_{j=1}^Mlcm(i,j)$ 原式 $=\sum_{i=1}^N\sum_{j=1}^M\frac{i*j}{g ...

  8. P1829 [国家集训队]Crash的数字表格

    P1829 [国家集训队]Crash的数字表格 原题传送门 前置芝士 莫比乌斯反演 乘法逆元 数论分块 正文 //补充:以下式子中的除法均为整除 由题目可以得知,这道题让我们所求的数,用一个式子来表达 ...

  9. 题解-[国家集训队]Crash的数字表格 / JZPTAB

    题解-[国家集训队]Crash的数字表格 / JZPTAB 前置知识: 莫比乌斯反演 </> [国家集训队]Crash的数字表格 / JZPTAB 单组测试数据,给定 \(n,m\) ,求 ...

随机推荐

  1. .Net Core On Liunx 环境搭建之安装Mysql8

    上一篇文章安装了MongoDB紧接上一篇随笔,来进行MySql数据库的安装 服务器环境:阿里云云服务器,操作系统CentOS.7-x64 注:文章的图片是我从我的CSDN博客中直接粘贴过来的,不是扒的 ...

  2. Linux基础(04)、功能配置(调整防火墙、静态IP、环境变量)

    目录 一.centos防火墙 二.VMware网络连接方式 2.1.连接方式:桥接.NAT.仅主机 2.2.常见问题 三.centos配置静态IP 四.环境变量 4.1.什么是环境变量 4.2.临时修 ...

  3. ruby URI类

    一. URI require 'uri' uri = URI("http://foo.com/posts?id=30&limit=5#time=1305298413") # ...

  4. Python3爬虫(十) 数据存储之非关系型数据库MongoDB

    Infi-chu: http://www.cnblogs.com/Infi-chu/ 一.非关系型数据库NoSQL全程是Not Only SQL,非关系型数据库.NoSQL是基于键值对的,不需要经过S ...

  5. js倒计时页面跳转

    HTML: <p><span id="timer">60</span>s 后跳转到百度首页</p> JS: //倒计时方法 func ...

  6. RedHat安装Oracle后中文乱码

    radhat7.1 Oracle11gr2 安装Oracle时忘记设置字符集,导致安装后中文乱码,中文变成"???????????" 分析原因是Oracle服务器端和客户端的字符集 ...

  7. git使用ssh密钥(转)

    git使用https协议,每次pull, push都要输入密码,相当的烦.使用git协议,然后使用ssh密钥.这样可以省去每次都输密码. 大概需要三个步骤:一.本地生成密钥对:二.设置github上的 ...

  8. hadoop中的方法的作用

    /*  * InputFormat类:  *   * 作用:  * 1.设置输入的形式;  * 2.将输入的数据按照相应的形式分割成一个个spilts后再进一步拆分成<key,value> ...

  9. Bugku 速度要快

    import requests import base64 url="http://123.206.87.240:8002/web6/" res=requests.get(url) ...

  10. Unity动态换装之Spine换装

    注:转载请注明转载,并附原链接 http://www.cnblogs.com/liaoguipeng/p/5867510.html 燕双飞情侣 一.动态换装原理 换装,无非就是对模型的网格,或者贴图进 ...