luogu P3327 [SDOI2015]约数个数和(rng58-clj等式)

题目大意

设d(x)d(x)d(x)为x的因子的个数,给出N和M求
∑i=1n∑j=1md(i,j)\sum_{i=1}^n\sum_{j=1}^md(i,j) i=1∑n​j=1∑m​d(i,j)

解题思路

根据rng58-clj等式,有
∑i=1n∑j=1md(i,j)=∑i=1n∑j=1m[gcd(i,j)=1]⌊ni⌋⌊mj⌋\sum_{i=1}^n\sum_{j=1}^md(i,j)=\sum_{i=1}^n\sum_{j=1}^m[gcd(i,j)=1]\left\lfloor\frac{n}{i}\right\rfloor\left\lfloor\frac{m}{j}\right\rfloor i=1∑n​j=1∑m​d(i,j)=i=1∑n​j=1∑m​[gcd(i,j)=1]⌊in​⌋⌊jm​⌋
显然对[gcd(i,j)=1][gcd(i,j)=1][gcd(i,j)=1]可以做反演,再通过改变枚举顺序,可以得到
∑i=1n∑j=1md(i,j)=∑d=1μ(d)∑i=1⌊nd⌋∑j=1⌊md⌋⌊nid⌋⌊mid⌋\sum_{i=1}^n\sum_{j=1}^md(i,j)=\sum_{d=1}\mu(d)\sum_{i=1}^{\left\lfloor\frac{n}{d}\right\rfloor}\sum_{j=1}^{\left\lfloor\frac{m}{d}\right\rfloor}\left\lfloor\frac{n}{id}\right\rfloor\left\lfloor\frac{m}{id}\right\rfloor i=1∑n​j=1∑m​d(i,j)=d=1∑​μ(d)i=1∑⌊dn​⌋​j=1∑⌊dm​⌋​⌊idn​⌋⌊idm​⌋
预处理出∑i=1n⌊ni⌋\sum_{i=1}^n\left\lfloor\frac{n}{i}\right\rfloor∑i=1n​⌊in​⌋再做整除分块即可

AC代码

// luogu-judger-enable-o2
#include<bits/stdc++.h>
using namespace std;
const int size=5e4+5;
int p[size];bool prime[size];
int mu[size];
int summu[size];
int tot;
typedef long long LL;
LL sum[size];
void init()
{mu[1]=1;for(int i=1;i<size;i++) prime[i]=true;for(int i=2;i<size;i++){if(prime[i]){p[++tot]=i;mu[i]=-1;}for(int j=1;j<=tot&&p[j]*i<size;j++){prime[i*p[j]]=false;if(i%p[j]==0){mu[i*p[j]]=0;break;}else mu[i*p[j]]=-mu[i];}}summu[0]=0;for(int i=1;i<size;i++) summu[i]=summu[i-1]+mu[i];memset(sum,0,sizeof(sum));for(int i=1;i<size;i++){for(int l=1,r;l<=i;l=r+1){r=i/(i/l);sum[i]+=(r-l+1)*(i/l);}}
}
int main()
{int t;init();scanf("%d",&t);while(t--){int n,m;scanf("%d%d",&n,&m);LL ans=0;if(n<m)  swap(n,m);for(int l=1,r;l<=m;l=r+1){r=n/(n/l);r=min(r,m/(m/l));ans+=(summu[r]-summu[l-1])*sum[n/l]*sum[m/l];}printf("%lld\n",ans);}
}

luogu P3327 [SDOI2015]约数个数和(rng58-clj等式)相关推荐

  1. P3327 [SDOI2015]约数个数和

    P3327 [SDOI2015]约数个数和 题意: 设 d(x) 为 x 的约数个数,给定 n,m,求 ∑i=1n∑j=1md(i,j)\sum_{i=1}^{n}\sum_{j=1}^{m}d(i, ...

  2. P3327 [SDOI2015]约数个数和 (mobius反演)

    P3327 [SDOI2015]约数个数和 推导过程 求∑i=1n∑j=1md(ij)\sum_{i = 1} ^{n} \sum_{j = 1} ^{m} d(ij)∑i=1n​∑j=1m​d(ij ...

  3. 并不对劲的bzoj3994:loj2185:p3327[SDOI2015]约数个数和

    题目大意 设d(x)为x的约数个数,\(t\)组询问,给定\(n,m\)(\(t,m,n\leq5*10^4\)),求$ \sum^n_{i=1}\sum^m_{j=1}d(i*j)$ 题解 假设\( ...

  4. [SDOI2015]约数个数和【莫比乌斯反演】

    [SDOI2015]约数个数和 题意:\(d(x)\)为\(x\)的约数个数,求\(\sum_{i=1}^n\sum{j=1}^md(ij)\) 由结论得\[ans=\sum_{i=1}^n\sum_ ...

  5. 【BZOJ3994】[SDOI2015]约数个数和 莫比乌斯反演

    [BZOJ3994][SDOI2015]约数个数和 Description 设d(x)为x的约数个数,给定N.M,求   Input 输入文件包含多组测试数据. 第一行,一个整数T,表示测试数据的组数 ...

  6. 洛谷 [SDOI2015]约数个数和 解题报告

    [SDOI2015]约数个数和 题目描述 设\(d(x)\)为\(x\)的约数个数,给定\(N,M\),求$ \sum\limits^N_{i=1}\sum\limits^M_{j=1}d(ij)$ ...

  7. [BZOJ3994][SDOI2015]约数个数和

    3994: [SDOI2015]约数个数和 Time Limit: 20 Sec  Memory Limit: 128 MB Submit: 1104  Solved: 762 [Submit][St ...

  8. SDOI2015 约数个数和(莫比乌斯反演经典、双上限整除分块)超详细笔记

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 AcWing 1358. 约数个数和(莫比乌斯反演经典.双上限整除分块) #include <c ...

  9. BZOJ 3994: [SDOI2015]约数个数和 [莫比乌斯反演 转化]

    2015 题意:\(d(i)\)为i的约数个数,求\(\sum\limits_{i=1}^n \sum\limits_{j=1}^m d(ij)\) \(ij\)都爆int了.... 一开始想容斥一下 ...

最新文章

  1. python【蓝桥杯vip练习题库】BASIC-15字符串对比(水题)
  2. 删除数据库里面所有表!
  3. tensorflow随笔-acosh,acos
  4. 为什么下一个十年的主战场在Serverless | 云原生Talk
  5. 按15分钟取数据_【数量技术宅|金融数据分析系列分享】套利策略的价差序列计算,恐怕没有你想的那么简单...
  6. Linux内核的Softirq机制
  7. redlock java_分布式Redis的分布式锁Redlock
  8. 重写equals方法(未完)
  9. linux防止文件和目录被意外删除或修改
  10. 开放接口的安全验证方案(AES+RSA)
  11. 没了疫情红利的华大基因,靠什么保持增长?
  12. Linux下Pulseaudio的可视化管理---pavucontrol
  13. IDEA中amend
  14. 爬虫之汽车之家/抽屉新热榜/煎蛋网
  15. 高德地图刷新当前位置_高德地图怎样实现实时定位,得到当前地点的坐标,位置...
  16. Warning from https://repo.packagist.org: Support for Composer 1 is deprecate
  17. 你不知道的Guava用法
  18. 【Java设计模式】——单例模式
  19. 速度来看mac电脑怎么彻底关闭系统更新
  20. excel表格怎么调整行高和列宽_同事看呆!文档怎么打印在一页上?这招超简单!...

热门文章

  1. 使用visio画E-R图(灭火器信息管理系统)
  2. 手把手教你写HT1621显示驱动,简单明了,内含原码,方便移植,
  3. usb引导盘检测计算机系统,Bootable USB Test
  4. Mule学习(五、Mule Expression Language - MEL表达式)
  5. qt android播放器代码,Qt on android 播放视频的实现
  6. 2 Reactjs 使用 PropTypes 进行类型检查
  7. 【MySQL】sql调优实战教学
  8. 小米路由R3G Breed 刷Padavan/openWRT固件
  9. Gradle错误提示:Java home supplied via 'org.gradle.java.home' is invalid
  10. 【论文指导】计算机毕业设计,摘要如何写?15篇案例把你安排明白