题意:求\(\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)==1]\)

\(assume\ n<m\)

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

\(\Longrightarrow \sum_{x=1}^{n}\sum_{i=1}^{n}\sum_{j=1}^{m}\sum_{x|gcd(i,j)}\mu(x)\)

\(\Longrightarrow \sum_{x=1}^{n}\sum_{i=1}^{n}\sum_{j=1}^{m}\sum_{x|i,x|j}\mu(x)\)

\(\Longrightarrow \sum_{x=1}^{n}\sum_{i=1}^{n}\sum_{j=1}^{m}[x|i,x|j]\mu(x)\)

\(\Longrightarrow \sum_{x=1}^{n}\sum_{i=1}^{n/x}\sum_{j=1}^{m/x}\mu(x)\)

\(\Longrightarrow \sum_{x=1}^{n}\lfloor\frac nx\rfloor\lfloor\frac mx\rfloor\mu(x)\)

那么我们\(O(n)\)筛出\(\mu(x)\)函数的前缀和,再用整除分块优化,最终时间复杂度为\(O(T\sqrt{n})\)

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=1000000+10;
ll n,m,prim[maxn],vis[maxn],mu[maxn],cnt,ans; void getmu(ll n){
register ll i,j;
mu[1]=1;
for(i=2;i<=n;i++){
if(!vis[i]){prim[++cnt]=i;mu[i]=-1;}
for(j=1;i*prim[j]<=n&&j<=cnt;j++){
vis[i*prim[j]]=1;
if(i%prim[j]==0) break;
mu[i*prim[j]]=-mu[i];
}
}
for(i=1;i<=n;i++) mu[i]+=mu[i-1];
} int main()
{
getmu(1000000);
register ll T,l,r;
scanf("%d",&T);
while(T--){
scanf("%lld%lld",&n,&m);
if(n>m) swap(n,m);
ans=0;
for(l=1;l<=n;l=r+1){
r=min(n/(n/l),m/(m/l));
ans+=(n/l)*(m/l)*(mu[r]-mu[l-1]);
}
printf("%lld\n",ans);
}
return 0;
}

UVA12888 【Count LCM】(莫比乌斯反演)的更多相关文章

  1. 【bzoj2694】Lcm 莫比乌斯反演+线性筛

    题目描述 求$\sum\limits_{i=1}^n\sum\limits_{j=1}^m|\mu(gcd(i,j))|lcm(i,j)$,即$gcd(i,j)$不存在平方因子的$lcm(i,j)$之 ...

  2. BZOJ 2694: Lcm 莫比乌斯反演 + 积性函数 + 线性筛 + 卡常

    求 $\sum_{i=1}^{n}\sum_{j=1}^{m}lcm(i,j)\mu(gcd(i,j))^2$   $\Rightarrow \sum_{d=1}^{n}\mu(d)^2\sum_{i ...

  3. BZOJ 2694: Lcm [莫比乌斯反演 线性筛]

    题意:求\(\sum\limits_{i=1}^n \sum\limits_{j=1}^m lcm(i,j)\ : gcd(i,j) 是sf 无平方因子数\) 无平方因子数?搞一个\(\mu(gcd( ...

  4. [bzoj] 2694 Lcm || 莫比乌斯反演

    原题 定义整数a,b,求所有满足条件的lcm(a,b)的和: 1<=a<=A 1<=b<=B ∀n>1,n2†gcd(a,b)(即任意n>1,\(n^2\)不是gc ...

  5. hdu 5382 GCD?LCM! - 莫比乌斯反演

    题目传送门 传送门I 传送门II 题目大意 设$F(n) = \sum_{i = 1}^{n}\sum_{j = 1}^{n}\left [ [i, j] + (i, j) \geqslant n \ ...

  6. lcm的和(莫比乌斯反演)

    马上开学了,加一个操作系统和数据库标签 不玩了,求1-n和1-m的lcm(i,j)和 首先想到把lcm(i,j)转化为i * j / gcd(i, j) 然后gcd,要素察觉,开始枚举d使得gcd(i ...

  7. BZOJ 2154: Crash的数字表格 [莫比乌斯反演]

    2154: Crash的数字表格 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 2924  Solved: 1091[Submit][Status][ ...

  8. Bzoj2154 Crash的数字表格 乘法逆元+莫比乌斯反演(TLE)

    题意:求sigma{lcm(i,j)},1<=i<=n,1<=j<=m 不妨令n<=m 首先把lcm(i,j)转成i*j/gcd(i,j) 正解不会...总之最后化出来的 ...

  9. hdu1695(莫比乌斯反演)

    传送门:GCD 题意:求[1,n],[1,m]gcd为k的对数. 分析:莫比乌斯入反演门题,gcd(x,y)==k等价于gcd(x/k,y/k)==1,求出[1,n][1,m]互质的对数,在减去[1, ...

  10. 【BZOJ2154】Crash的数字表格(莫比乌斯反演)

    [BZOJ2154]Crash的数字表格(莫比乌斯反演) 题面 BZOJ 简化题意: 给定\(n,m\) 求\[\sum_{i=1}^n\sum_{j=1}^mlcm(i,j)\] 题解 以下的一切都 ...

随机推荐

  1. [C#.NET]最简单的实现文本框的水印效果

    C#项目开发中在设计登录界面时,经常会遇到TextBox的水印提示要求.这里简单描述一下项目在实现水印提示的过程设置.如下图图1所示. 图1  窗体布局 一.窗体布局(如图1所示) 1.  在窗体中放 ...

  2. mysql之存储引擎和文件配置

    (查看系统服务,在运行里输入services.msc) 补充:将mysql做成系统服务:mysqld --install 取消:mysqld --romove 在服务中可以直接鼠标操作mysql服务的 ...

  3. 2019.01.21 bzoj2441: [中山市选2011]小W的问题(树状数组+权值线段树)

    传送门 数据结构优化计数菜题. 题意简述:给nnn个点问有多少个www型. www型的定义: 由5个不同的点组成,满足x1<x2<x3<x4<x5,x3>x1>x2 ...

  4. 2019.01.01洛谷 P4725/P4726 多项式对数/指数函数(牛顿迭代)

    4725传送门 4726传送门 解析 代码: #include<bits/stdc++.h> #define ri register int using namespace std; in ...

  5. Java核心技术之基础知识

    一.类型转换 数值类型之间的转换 强制类型转换 a)       将一个数值强制转换成另一种类型时,如果超出目标类型的便是范围,结果就会截断成一个完全不同的值.(如:(byte)300的实际值为44) ...

  6. TCP粘包问题分析和解决(全)

    TCP通信粘包问题分析和解决(全) 在socket网络程序中,TCP和UDP分别是面向连接和非面向连接的.因此TCP的socket编程,收发两端(客户端和服务器端)都要有成对的socket,因此,发送 ...

  7. XMind使用教程

    使用XMind,可以轻松创建.管理及控制思维导图.1. 启动XMind,选择一个空白模板或模板创建:2. 单击中心主题,输入文字即可对中心主题重命名:3. 使用键盘Enter键创建主要/同级主题,使用 ...

  8. Node简单的控制台读取和文件操作

    const fs = require('fs'); const readline = require('readline'); const rl = readline.createInterface( ...

  9. web-day12

    第12章WEB12-JSP&EL&JSTL篇 今日任务 商品信息的显示 教学导航 教学目标 掌握JSP的基本的使用 掌握EL的表达式的用法 掌握JSTL的常用标签的使用 教学方法 案例 ...

  10. 1、从C语言到C++

    1.面向对象的C++ c++是在C语言的基础上发展起来的一门语言,C++是即支持结构化程序编程又支持面向对象程序设计的混合型语言.他一方面提供了对C的兼容性,保持了C的简介.高效,接近汇编语言的特点, ...