【bzoj2154】 Crash的数字表格
http://www.lydsy.com/JudgeOnline/problem.php?id=2154 (题目链接)
题意
给出${n,m}$,求$${\sum_{i=1}^n\sum_{j=1}^mlcm(i,j)}$$
Solution
莫比乌斯反演,推啊推式子。
\begin{aligned} \sum_{i=1}^n\sum_{j=1}^mlcm(i,j)=&\sum_{i=1}^n\sum_{j=1}^m\frac{ij}{gcd(i,j)} \\ =&\sum_{g=1}^{min(n,m)}\sum_{i=1}^{\lfloor{n/g}\rfloor}\sum_{j=1}^{\lfloor{m/g}\rfloor}\frac{ijg^2}{g}[gcd(i,j)=1] \\ =&\sum_{g=1}^{min(n,m)}g\sum_{i=1}^{\lfloor{n/g}\rfloor}\sum_{j=1}^{\lfloor{m/g}\rfloor}ij\sum_{t|i,t|j}μ(t) \\ =&\sum_{g=1}^{min(n,m)}g\sum_{t=1}^{min(\lfloor{n/g}\rfloor,\lfloor{m/g}\rfloor)}μ(t)\sum_{i=1}^{\lfloor{n/(gt)}\rfloor}\sum_{j=1}^{\lfloor{m/(gt)}\rfloor}ijt^2 \end{aligned}
此时,我们用${S(n)}$表示${\sum_{i=1}^ni}$。
\begin{aligned} \sum_{g=1}^{min(n,m)}g\sum_{t=1}^{min(\lfloor{n/g}\rfloor,\lfloor{m/g}\rfloor)}μ(t)t^2S(\lfloor\frac{n}{gt}\rfloor)S(\lfloor\frac{m}{gt}\rfloor) \end{aligned}
令${Q=gt}$。
\begin{aligned} \sum_{Q=1}^{min(n,m)}S(\lfloor\frac{n}{Q}\rfloor)S(\lfloor\frac{m}{Q}\rfloor)Q\sum_{t|Q}tμ(t) \end{aligned}
我们发现,${g(Q)=\sum_{t|Q}tμ(t)}$是个积性函数,为什么呢。首先有公式${f(t)=tμ(t)}$是积性的,那么我们构造另外一个积性函数${p(t)=1}$,将${f}$和${p}$狄利克雷卷积,就得到了${g}$,所以${g}$是个积性函数,可以用线性筛在${O(n)}$的时间内算出来,所以最后复杂度就是${O(n)}$的。
细节
最后输出答案的时候加模再取模
代码
// bzoj2154
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<vector>
#include<cmath>
#define LL long long
#define inf 2147483647
#define MOD 20101009
#define Pi acos(-1.0)
#define free(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout);
using namespace std; const int maxn=10000010;
LL f[maxn],S[maxn];
int p[maxn],vis[maxn],n,m; int main() {
scanf("%d%d",&n,&m);
if (n>m) swap(n,m);
S[1]=f[1]=1;
for (int i=2;i<=m;i++) {
if (!vis[i]) p[++p[0]]=i,f[i]=1-i;
for (int j=1;j<=p[0] && p[j]*i<=m;j++) {
vis[i*p[j]]=1;
if (i%p[j]==0) {f[i*p[j]]=f[i];break;}
else f[i*p[j]]=f[i]*f[p[j]]%MOD;
}
S[i]=(S[i-1]+i)%MOD;
}
LL ans=0;
for (LL i=1;i<=n;i++)
ans=(ans+S[n/i]*S[m/i]%MOD*i%MOD*f[i]%MOD)%MOD;
printf("%lld\n",(ans+MOD)%MOD);
return 0;
}
【bzoj2154】 Crash的数字表格的更多相关文章
- BZOJ2154 Crash的数字表格 【莫比乌斯反演】
BZOJ2154 Crash的数字表格 Description 今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple).对于两个正整数a和b,LCM(a, b) ...
- BZOJ2154: Crash的数字表格 & BZOJ2693: jzptab
[传送门:BZOJ2154&BZOJ2693] 简要题意: 给出n,m,求$\sum_{i=1}^{n}\sum_{j=1}^{m}LCM(i,j)$ 题解: 莫比乌斯反演(因为BZOJ269 ...
- Bzoj2154 Crash的数字表格 乘法逆元+莫比乌斯反演(TLE)
题意:求sigma{lcm(i,j)},1<=i<=n,1<=j<=m 不妨令n<=m 首先把lcm(i,j)转成i*j/gcd(i,j) 正解不会...总之最后化出来的 ...
- BZOJ2154: Crash的数字表格
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2154 题意&&题解:http://www.cnblogs.com/jiangl ...
- 【莫比乌斯反演】BZOJ2154 Crash的数字表格
Description 求sigma lcm(x,y),x<=n,y<=m.n,m<=1e7. Solution lcm没有什么直接做的好方法,用lcm=x*y/gcd转成gcd来做 ...
- bzoj千题计划253:bzoj2154: Crash的数字表格
http://www.lydsy.com/JudgeOnline/problem.php?id=2154 #include<cstdio> #include<algorithm> ...
- bzoj2154: Crash的数字表格 莫比乌斯反演
题意:求\(\sum_{i=1}^n \sum_{j=1}^m\frac{i*j}{gcd(i,j)}\) 题解:\(ans=\sum_{i=1}^n\sum_{j=1}^m \frac{i*j}{g ...
- [bzoj2154]Crash的数字表格(mobius反演)
题意:$\sum\limits_{i = 1}^n {\sum\limits_{j = 1}^m {lcm(i,j)} } $ 解题关键: $\sum\limits_{i = 1}^n {\sum\l ...
- 莫比乌斯反演套路三、四--BZOJ2154: Crash的数字表格 && BZOJ2693: jzptab
t<=1e4个询问每次问n,m<=1e7,$\sum_{1\leqslant x \leqslant n,1 \leqslant y\leqslant m}lcm(x,y)$. 首先题目要 ...
- 【BZOJ2154】Crash的数字表格(莫比乌斯反演)
[BZOJ2154]Crash的数字表格(莫比乌斯反演) 题面 BZOJ 简化题意: 给定\(n,m\) 求\[\sum_{i=1}^n\sum_{j=1}^mlcm(i,j)\] 题解 以下的一切都 ...
随机推荐
- springboot 前后端分离开发 从零到整(二、邮箱注册)
spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver username: root password: 123456 url: ...
- 简单3D翻页相册制作教程
3D效果看起来总是要比平面的图形看起来视觉效果要好的多,今天来教大家制作简单的3D翻页效果的视频. 视频预览链接:https://v.youku.com/v_show/id_XMzgxOTY5NzQz ...
- ngxin 添加模块
if test -n "$NGX_ADDONS"; then echo configuring additional modules for ngx_addon_dir in $N ...
- 【LDAP安装】在已编译安装的PHP环境下安装LDAP模块
在已编译安装的PHP环境下安装LDAP模块 (乐维温馨提示:其他模块也能以这个方式安装) 1.在PHP源码包内找到ldap模块文件 cd php-5.6.37 cd ext/ldap/ 2.phpiz ...
- word2vec的理解
在学习LSTM的时候,了解了word2vec,简单的理解就是把词变成向量.看了很多书,也搜索了很多博客,大多数都是在word2vec的实现原理.数学公式,和一堆怎么样重新写一个word2vec的pyt ...
- 浏览器差异bug汇总(js篇)
获取滚动条高度 var scrollTop = document.body.scrollTop || document.documentElement.scrollTop; safari浏览器时间函数 ...
- 20172311『Java程序设计』课程 结对编程练习_四则运算第二周阶段总结
20172311『Java程序设计』课程 结对编程练习_四则运算第二周阶段总结 结对伙伴 学号 :20172307 姓名 :黄宇瑭 伙伴第一周博客地址 对结对伙伴的评价:黄宇瑭同学的优势在于能够想出一 ...
- HDU 1015 Jury Compromise 01背包
题目链接: http://poj.org/problem?id=1015 Jury Compromise Time Limit: 1000MSMemory Limit: 65536K 问题描述 In ...
- java equals()方法的注意事项
1.在写代码的时候,我们有时候需要判断两个相同类的对象的值是否全部相等,很多人想到的就是equals()方法,但是equals方法真的是可以比较吗?其实equals方法比较的并不是两个对象的值,它只是 ...
- linux 环境配置要点
cd root .bash_profile 这个是配置当前用户的环境变量 cd /etcprofile 这个是配置系统的环境变量 which xxx 查看命令的目录 source .bash_prof ...