【BZOJ】2154: Crash的数字表格 莫比乌斯反演
【题意】给定n,m,求Σlcm(i,j),1<=i<=n,1<=j<=m,n,m<=10^7。
【算法】数论(莫比乌斯反演)
【题解】
$$ans=\sum_{i\leq n}\sum_{j\leq m}\frac{i*j}{gcd(i,j)}$$
$$ans=\sum_{d\leq min(n,m)}1/d\sum_{i\leq n}\sum_{j\leq m}[gcd(i,j)=d]i*j$$
$$ans=\sum_{d\leq min(n,m)}d\sum_{i\leq n/d}\sum_{j\leq m/d}[gcd(i,j)=1]i*j$$
发现后面部分只和n/d,m/d有关,于是封装后分块取值优化。
★$$ans=\sum_{d\leq min(n,m)}d*F(n/d,m/d)$$
$$F(n,m)=\sum_{i\leq n}\sum_{j\leq m}[gcd(i,j)=1]i*j$$
运用e=i*μ反演易得
★$$F(n,m)=\sum_{d\leq min(n,m)}\mu (d)*d^2*sum(n/d,m/d)$$
$$sum(n,m)=\sum_{i\leq n}\sum_{j\leq m}i*j=\sum_{i\leq n}i\sum_{j\leq m}j$$
★$$sum(n,m)=\frac{n(n+1)}{2}*\frac{m(m+1)}{2}$$
(这步由一般分配律)
最后就是两次分块取值优化,√n*√n,复杂度O(n)。
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=,MOD=;
int sum[maxn],n,m,miu[maxn],prime[maxn],tot;
bool mark[maxn];
int M(int x){return x>=MOD?x-MOD:x;}
int SUM(int x,int y){return 1ll*x*(x+)/%MOD*(1ll*y*(y+)/%MOD)%MOD;}
int solve(int x,int y){
int z=min(x,y),ans=,pos=;
for(int i=;i<=z;i=pos+){
pos=min(x/(x/i),y/(y/i));
ans=(ans+1ll*(sum[pos]-sum[i-])*SUM(x/i,y/i)%MOD)%MOD;
}
return ans;
}
int main(){
scanf("%d%d",&n,&m);
int z=min(n,m);
miu[]=sum[]=;
for(int i=;i<=z;i++){
if(!mark[i])miu[prime[++tot]=i]=-;
for(int j=;j<=tot&&i*prime[j]<=z;j++){
mark[i*prime[j]]=;
if(i%prime[j]==)break;
miu[i*prime[j]]=-miu[i];
}
sum[i]=(sum[i-]+1ll*i*i*miu[i]%MOD)%MOD;
}
int pos=,ans=;
for(int i=;i<=z;i=pos+){
pos=min(n/(n/i),m/(m/i));
ans=(ans+1ll*(pos+i)*(pos-i+)/%MOD*solve(n/i,m/i))%MOD;
}
printf("%d",(ans+MOD)%MOD);
return ;
}
【BZOJ】2154: Crash的数字表格 莫比乌斯反演的更多相关文章
- [BZOJ 2154]Crash的数字表格(莫比乌斯反演+数论分块)
[BZOJ 2154]Crash的数字表格(莫比乌斯反演+数论分块) 题面 求 \[\sum_{i=1}^{n} \sum_{j=1}^{m} \mathrm{lcm}(i,j)\] 分析 \[\su ...
- [bzoj 2693] jzptab & [bzoj 2154] Crash的数字表格 (莫比乌斯反演)
题目描述 TTT组数据,给出NNN,MMM,求∑x=1N∑y=1Mlim(x,y)\sum_{x=1}^N\sum_{y=1}^M lim(x,y)\newlinex=1∑Ny=1∑Mlim(x, ...
- BZOJ 2154: Crash的数字表格 [莫比乌斯反演]
2154: Crash的数字表格 Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 2924 Solved: 1091[Submit][Status][ ...
- BZOJ 2154 Crash的数字表格 ——莫比乌斯反演
求$\sum_{i=1}^n\sum_{j=1}^n lcm(i,j)$ 枚举因数 $ans=\sum_{d<=n} F(d) * d$ $F(d)$表示给定范围内两两$\sum_{gcd(i, ...
- 【莫比乌斯反演】关于Mobius反演与lcm的一些关系与问题简化(BZOJ 2154 crash的数字表格&&BZOJ 2693 jzptab)
BZOJ 2154 crash的数字表格 Description 今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple).对于两个正整数a和b,LCM(a, b ...
- Bzoj 2154: Crash的数字表格(积性函数)
2154: Crash的数字表格 Time Limit: 20 Sec Memory Limit: 259 MB Description 今天的数学课上,Crash小朋友学习了最小公倍数(Least ...
- 【刷题】BZOJ 2154 Crash的数字表格
Description 今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple).对于两个正整数a和b,LCM(a, b)表示能同时被a和b整除的最小正整数.例如 ...
- 【bzoj2154】Crash的数字表格 莫比乌斯反演
题目描述 今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple).对于两个正整数a和b,LCM(a, b)表示能同时被a和b整除的最小正整数.例如,LCM(6, ...
- ●BZOJ 2154 Crash的数字表格
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=2154 题解: 莫比乌斯反演. 题意还是很清楚的,就不赘述了. 显然有 $ANS=\sum_{ ...
随机推荐
- 关于 Oracle Preinstallation RPM
About the Oracle Preinstallation RPM 来源 https://docs.oracle.com/en/database/oracle/oracle-database/1 ...
- libnl3.2.25安装编译
1,tar zxvf libnl-3.2.25.tar.gz 2,cd libnl-3.2.25 3,./configure --prefix=/usr --sysconfdir=/etc --d ...
- mysql中联合查询
联合查询union 一个翻译问题的解释: 在mysql的手册中,将连接查询(Join)翻译为联合查询: 而联合查询(union),没有明确翻译. 但: 在通常的书籍或文章中,join被翻译为“连接”查 ...
- MAC 下用 brew 搭建 PHP 开发环境
Mac下用brew搭建PHP(LNMP/LAMP)开发环境 Mac下搭建lamp开发环境很容易,有xampp和mamp现成的集成环境.但是集成环境对于经常需要自定义一些配置的开发者来说会非常麻烦,而且 ...
- windows安装安卓开发环境Eclipse+SDK+ADT
准备条件 操作系统:win7 64位 需要的资源:JDK.Eclipse.SDK.ADT 步骤简介: 第一步:下载安装最新版JDK 第二步:下载安装Eclipse 第三步:下载安装SDK 第四步:安装 ...
- 第94天:CSS3 盒模型详解
CSS3盒模型详解 盒模型设定为border-box时 width = border + padding + content 盒模型设定为content-box时 width = content所谓定 ...
- Struts的default.properties五个配置 一般利用按着配置文件的加载的顺序,后面文件和前面文件相同的配置,后面的会把前面的文件的值覆盖的原则 在struts.xml里面进行配置
1 struts.i18n.encoding=UTF-8 配置编码 2 struts.action.extension=action,, 配置浏览器访问地址的后缀 3 struts.devMode = ...
- (转)java web自定义分页标签
转载至http://liuxi1024.iteye.com/blog/707784 效果如图: 1.JSP规范1.1版本后增加了自定义标签库.实现自定义标签的步骤 (1)开发自定义标签处理类. (2) ...
- 【BZOJ3714】Kuglarz(最小生成树)
[BZOJ3714]Kuglarz(最小生成树) 题面 BZOJ Description 魔术师的桌子上有n个杯子排成一行,编号为1,2,-,n,其中某些杯子底下藏有一个小球,如果你准确地猜出是哪些杯 ...
- NOIP2015运输计划题解报告
这题在洛谷上可以找到提交 P2680运输计划 题目背景 公元 2044 年,人类进入了宇宙纪元. 题目描述 L 国有 n 个星球,还有 n-1 条双向航道,每条航道建立在两个星球之间,这 n-1 条航 ...