枚举$d=gcd(i,j)$

然后大力反演

——来自Popoqqq的博客。

然后大力讨论后面的函数的意义即可。

http://blog.csdn.net/popoqqq/article/details/42122413

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
#define F(i,j,k) for (int i=j;i<=k;++i)
#define D(i,j,k) for (int i=j;i>=k;--i)
#define ll long long
#define maxn 10000005
#define inf 0x3f3f3f3f int g[maxn],pr[maxn],top,a[maxn],b[maxn];
bool vis[maxn]; void init()
{
memset(vis,false,sizeof vis);
F(i,2,maxn-1)
{
if (!vis[i])
{
pr[++top]=i;
g[i]=1;
a[i]=1;
b[i]=i;
}
F(j,1,top)
{
if ((ll)i*pr[j]>=maxn) break;
vis[i*pr[j]]=true;
if (i%pr[j]==0)
{
a[i*pr[j]]=a[i]+1;
b[i*pr[j]]=b[i]*pr[j];
int tmp=i/b[i];
if (tmp==1) g[i*pr[j]]=1;
else g[i*pr[j]]=(a[tmp]==a[i*pr[j]])?-g[tmp]:0;
break;
}
a[i*pr[j]]=1;
b[i*pr[j]]=pr[j];
g[i*pr[j]]=(a[i]==1?-g[i]:0);
}
}
F(i,2,maxn-1) g[i]=g[i-1]+g[i];
} int t,n,m; int main()
{
init();
scanf("%d",&t);
while (t--)
{
scanf("%d%d",&n,&m);ll ans=0;
if (n>m) n^=m^=n^=m;
for (int i=1,last=0;i<=n;i=last+1)
{
last=min(n/(n/i),m/(m/i));
ans+=((ll)g[last]-g[i-1])*(n/i)*(m/i);
}
printf("%lld\n",ans);
}
}

  

BZOJ 3309 DZY Loves Math ——莫比乌斯反演的更多相关文章

  1. bzoj 3309 DZY Loves Math 莫比乌斯反演

    DZY Loves Math Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 1303  Solved: 819[Submit][Status][Dis ...

  2. bzoj 3309 DZY Loves Math —— 莫比乌斯反演+数论分块

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3309 凭着上课所讲和与 Narh 讨论推出式子来: 竟然是第一次写数论分块!所以迷惑了半天: ...

  3. BZOJ 3309: DZY Loves Math [莫比乌斯反演 线性筛]

    题意:\(f(n)\)为n的质因子分解中的最大幂指数,求\(\sum_{i=1}^n \sum_{j=1}^m f(gcd(i,j))\) 套路推♂倒 \[ \sum_{D=1}^n \sum_{d| ...

  4. BZOJ 3309: DZY Loves Math 莫比乌斯反演+打表

    有一个神奇的技巧——打表 code: #include <bits/stdc++.h> #define N 10000007 #define ll long long #define se ...

  5. 【BZOJ】3309: DZY Loves Math 莫比乌斯反演优化

    3309: DZY Loves Math Description 对于正整数n,定义f(n)为n所含质因子的最大幂指数.例如f(1960)=f(2^3 * 5^1 * 7^2)=3, f(10007) ...

  6. ●BZOJ 3309 DZY Loves Math

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3309 题解: 莫比乌斯反演,线筛 化一化式子: f(x)表示x的质因子分解中的最大幂指数 $ ...

  7. BZOJ 3309: DZY Loves Math

    3309: DZY Loves Math Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 761  Solved: 401[Submit][Status ...

  8. 【BZOJ3309】DZY Loves Math 莫比乌斯反演+线性筛(好题)

    [BZOJ3309]DZY Loves Math Description 对于正整数n,定义f(n)为n所含质因子的最大幂指数.例如f(1960)=f(2^3 * 5^1 * 7^2)=3, f(10 ...

  9. 【BZOJ3309】DZY Loves Math - 莫比乌斯反演

    题意: 对于正整数n,定义$f(n)$为$n$所含质因子的最大幂指数.例如$f(1960)=f(2^3 * 5^1 * 7^2)=3$,$f(10007)=1$,$f(1)=0$. 给定正整数$a,b ...

随机推荐

  1. Spark中Java函数的使用方法笔记

    1: map 函数map是对RDD中的每个元素都执行一个指定的函数来产生一个新的RDD. 任何原RDD中的元素在新RDD中都有且只有一个元素与之对应. 2: mapPartitions函数</p ...

  2. asp.net 页面嵌套(非iframe)方法

    前台 <div id="divUrlDetail" runat="server"> </div> 后台 protected void P ...

  3. codevs 3344 迷宫

    时间限制: 1 s  空间限制: 32000 KB  题目等级 : 黄金 Gold 题目描述 Description 小刚在迷宫内,他需要从A点出发,按顺序经过B,C,D……,到达最后一个点,再回到A ...

  4. bzip2命令

    bzip2命令——压缩文件 命令所在路径:/usr/bin/bzip2 示例1: # bzip2 yum.log 压缩当前目录下yum.log文件成yum.log.bz2 示例2: # bzip2 - ...

  5. cannot load such file -- bundler/setup解决

    sudo gem install bundler bundle update celluloid

  6. vue2.0的变化

    1. 在每个组件模板,不在支持片段代码 组件中模板: 之前: <template> <h3>我是组件</h3><strong>我是加粗标签</st ...

  7. pandas小结

    pandas part I: # 总结: DataFrame.loc[0:5] 一共6行数据,而切片[0:5]只有5个数据 在对df的行数据删除后,有些index已缺失,此时用 iloc[]来按照位置 ...

  8. OpenCascade: 获取边的端点

    FirstV = TopExp::FirstVertex(aEdge1); LastV = TopExp::LastVertex(aEdge1);

  9. java在线聊天项目 swt可视化窗口Design 登录框注册按钮点击改变窗口大小——出现注册面板 实现打开登录框时屏幕居中

    登录框注册按钮点击改变窗口大小——出现注册面板  首先用swt可视化设计登录窗口如下图: 此时窗口高度为578 没点击注册时高度为301(可自己定) 注意:注册用户的Jpanel 的border选择T ...

  10. windows终端输入pip install requests报错:Fatal error in launcher

    emm今天群友发了个图,说他的pip报错,是这个问题 emmm这个问题我也不太懂,后来让他pip install requests这样操作,, 还是不管用,我寻思这个错咋回事,让他用  python  ...