[bzoj3994] [SDOI2015]约数个数和

Description

设d(x)为x的约数个数,给定N、M,求 \(\sum_{i=1}^N\sum_{j=1}^Md(ij)\)

Input

输入文件包含多组测试数据。

第一行,一个整数T,表示测试数据的组数。

接下来的T行,每行两个整数N、M。

Output

T行,每行一个整数,表示你所求的答案。

Sample Input

2
7 4
5 6

Sample Output

110
121

HINT

1<=N, M<=50000

1<=T<=50000

solution

前置知识:莫比乌斯反演

首先对于\(d\)函数有一个结论:
\[ d(ij)=\sum_{d|i}\sum_{d|j}[gcd(i,j)=1] \]
我就是因为不知道这个结论推了半个小时无果QAQ

证明大致如下:对于\(ij\)的每一个质因数\(x\),在\(i\)里出现了\(a\)次,在\(j\)里出现了\(b\)次,则总共有\(a+b+1\)中情况,

然后进行转换,对于任意一个要选\(q\)个的情况:

  • \(q\leqslant a\),就在\(i\)里选出\(q\)个,\(j\)里不选。
  • 否则就在\(j\)里选出\(q-a\)个,这里的在\(j\)里选实质上是在\(i\)里选满了,然后再在\(j\)里选的,为了不重复计数,在\(j\)里选\(z\)个实质上是选了\(z+a\)个。

对于每一个质因数都这么考虑,然后只要保证\(i,j\)互质即为一种方案。

然后把这个玩意带到题目给的式子里去,大力推一下,可得:
\[ ans=\sum_{d^\prime=1}^{min(n,m)}\mu(d^\prime)\sum_{d_1=1}^{\lfloor\frac{n}{d^\prime}\rfloor}\lfloor\frac{n}{d_1d^\prime}\rfloor\sum_{d_2=1}^{\lfloor\frac{m}{d^\prime}\rfloor}\lfloor\frac{m}{d_2d^\prime}\rfloor \]
\(f\)为式子后面那一块,即:
\[ f(n)=\sum_{i=1}^{n}\lfloor\frac{n}{i}\rfloor \]
然后考虑下这个函数的性质:

对于枚举的\(i\)\(\lfloor\frac{n}{i}\rfloor\)实质上就是\(n\)以内能整除\(i\)的数的个数。

反过来想,对于每个数,它的每一个约数都对答案有1的贡献,所以\(f(n)\)等价于\(n\)以内的所有数的约数个数和。

然后线筛下约数个数和莫比乌斯函数,求下前缀和,整除分块下,就做完了。

时间复杂度\(O(n+q\sqrt{n})\)

#include<bits/stdc++.h>
using namespace std;#define int long long void read(int &x) {x=0;int f=1;char ch=getchar();for(;!isdigit(ch);ch=getchar()) if(ch=='-') f=-f;for(;isdigit(ch);ch=getchar()) x=x*10+ch-'0';x*=f;
}void print(int x) {if(x<0) putchar('-'),x=-x;if(!x) return ;print(x/10),putchar(x%10+48);
}
void write(int x) {if(!x) putchar('0');else print(x);putchar('\n');}const int maxn = 5e4+1;int d[maxn],pri[maxn],tot,p[maxn],vis[maxn],mu[maxn];void sieve() {d[1]=mu[1]=1;for(int i=2;i<maxn;i++) {if(!vis[i]) pri[++tot]=i,d[i]=2,p[i]=2,mu[i]=-1;for(int t,j=1;j<=tot&&i*pri[j]<maxn;j++) {vis[t=i*pri[j]]=1;if(!(i%pri[j])) {p[t]=p[i]+1;d[t]=d[i]/p[i]*p[t];mu[t]=0;break;}p[t]=2,d[t]=d[i]*p[t];mu[t]=-mu[i];}}for(int i=1;i<maxn;i++) mu[i]=mu[i]+mu[i-1];for(int i=1;i<maxn;i++) d[i]=d[i-1]+d[i];
}signed main() {sieve();int t;read(t);while(t--) {int n,m;read(n),read(m);int T=1,ans=0;if(n>m) swap(n,m);while(T<=n) {int pre=T;T=min(n/(n/T),m/(m/T));ans+=(mu[T]-mu[pre-1])*d[n/T]*d[m/T];T++;}write(ans);}return 0;
}

转载于:https://www.cnblogs.com/hbyer/p/10062542.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/426322.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机配置对电子竞技的影响,配置高并不是唯一优点 看看电竞硬件还要啥?...

01宁美国度星河 战列舰XS现在有很多游戏品牌依靠品牌的力量为自己背书&#xff0c;以至于很多游戏玩家很难找的合适自己的高性能电脑&#xff0c;电竞体验也就无从谈起&#xff0c;但是今年的新品里还是有一些意外之喜&#xff0c;在整机性能上表现不俗。比如电脑发烧友们向来有…

玩转oracle 11g(10):初步了解Rman备份

备份与恢复的定义及分类 备份的定义及分类&#xff1a; 备份就是把数据库复制到转储设备的过程。其中&#xff0c;转储设备是指用于放置数据库副本的磁带或磁盘。通常也将存放于转储设备中的数据库的副本称为原数据库的备份或转储。备份是一份数据副本&#xff0c;从不同的角度…

计算机硬盘与格式化,什么是磁盘格式化 格式化与快速格式化区别 - 驱动管家...

电脑磁盘格式化&#xff0c;对于电脑爱好者肯定很好理解&#xff0c;但对于一些新手&#xff0c;可能不太理解。格式化是什么?简单的说&#xff0c;格式化就是把一张空白的盘划分成一个个小的区域&#xff0c;并编号&#xff0c;供计算机储存&#xff0c;读取数据。接下来对磁…

玩转oracle 11g(11):开启归档模式

如果归档模式已经开启并设置归档路径&#xff0c;请跳过 1. 开始-》运行-》cmd 2. 输入&#xff1a;sqlplus sys/密码 as sysdba 3. Sql> archive log list ; 如下图所示&#xff1a; Rman 在线备份 如果“数据库日志模式”为“非存档模式” 按照如下开启归档…

LeetCode:204. 计数质数

1、题目描述 统计所有小于非负整数 n 的质数的数量。 示例: 输入: 10 输出: 4 解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。2、题解 2.1、解法一 缺点&#xff1a;太慢 class Solution(object):def countPrimes(self, n):""":type n: int:rtype: int…

玩转oracle 11g(12):卸载

从 Oracle 11gR2 开始&#xff0c;Oracle 推荐使用 deinstall 来完全卸载 Oracle 数据库。 使用 Oracle Universal Install(OUI) 的图形方式来卸载 Oracle 数据库软件&#xff0c;会看到下图警告: "请运行命令 C:\app\administrator\product\11.2.0\dbhome_1\deinstall\de…

jenkins 部署问题

1. 怀疑 jenkins 没有拉到最新的包解决&#xff1a;清除 jenkins 工作空间 2. jenkins 自动构建时&#xff0c; start.sh 脚本已经执行成功&#xff0c;但是应用总是启动后自动退出了进程没有起来&#xff0c;从 pid 文件来看&#xff0c;start.sh 确实已经启动过&#xff0c;从…

计算机操作系统(12):计算机工作原理

计算机工作原理 编辑 计算机的基本原理是存储程序和程序控制。预先要把指挥计算机如何进行操作的指令序列&#xff08;称为程序&#xff09;和原始数据通过输入设备输送到计算机内存贮器中。每一条指令中明确规定了计算机从哪个地址取数&#xff0c;进行什么操作&#xff0c;然…

戴尔计算机主板电路图,戴尔Dell-D630主板电路图.pdf

A B C D ECOMPAL CONFIDENTIALMODEL NAME : IBQ001 1PCB NO : LA-3302P ( DAA00000K0L)BOM P/N :012 M08 (DIS) Briscoe 2uFCPGA Mobile MeromIntel Crestline ICH8M2007-03-07REV : 0.4 (X03)3 3 : Nopop Component1 : Populate for G72MV

[SHOI2011]双倍回文 manacher

题面&#xff1a; 洛谷&#xff1a;[SHOI2011]双倍回文‘ 题解&#xff1a; 首先有一个性质&#xff0c;本质不同的回文串最多O(n)个。 所以我们可以对于每个i&#xff0c;求出以这个i为结尾的最长回文串&#xff0c;然后以此作为长串&#xff0c;并判断把这个长串从中间劈开后…

计算机操作员可以免考自考吗,计算机《职业资格证书》可以免考高

随着全国计算机等级考试(NCRE)的持续发展&#xff0c;NCRE的合格证书已被各行业广泛认可&#xff0c;部分省级自考办实行获得NCRE合格证书可免考高等教育自学考试相关课程的办法以拓展考试功效。为规范管理和保证课程免试的科学性&#xff0c;根据重庆市考办(渝考办发[200630]号…

服务器术语大全

1 服务器的1U 2U 含义 U是unit的缩写&#xff0c;表示服务器外部尺寸的单位&#xff0c;U规定服务器宽为&#xff08;48.26cm19英寸&#xff09;&#xff0c;高厚度为&#xff08;4.445cm&#xff09;U为基本单位&#xff0c;服务器大小必须为U 的倍数. 服务器常见专业术语大全…

python中出现ascii编码问题的解决办法

一劳永逸&#xff0c;一次性全盘解决的办法 环境变量中去设置 以centos 7为例&#xff1a; vim /etc/profile export PYTHONIOENCODINGutf-8 source /etc/profile 其它方法有&#xff1a; 代码头加&#xff1a; #coding:utf-8 等各种格式的声明 python2: import sys reload…

微信在计算机基础中的辅助作用,基于微信课后辅导在计算机基础教学中应用.doc...

基于微信课后辅导在计算机基础教学中应用基于微信课后辅导在计算机基础教学中应用摘 要&#xff1a; 如今&#xff0c;计算机技术更新快与计算机教育资源少的矛盾&#xff0c;促使课后学习成为大学生获取知识的重要途径。课后辅导是大学生课后学习的重要辅助&#xff0c;也是课…

h5禁用浏览器下载视频_【必备】 一键视频下载器插件,非常好用的浏览器插件!...

① 资源发布时&#xff0c;版本是最新的。时过境迁&#xff0c;无法保证能否正常使用&#xff0c;请善用公众号搜索功能&#xff0c;请及时下载最新版或留言。② 如果觉得资源对您有用&#xff0c;请收藏。如果觉得资源对他人有用&#xff0c;请转发。③ 如发现“无法运行“、“…

Oracle的to_char()函数使用

&#xff08;1&#xff09;用作日期转换&#xff1a; to_char(date,格式); select to_date(2005-01-01 ,yyyy-MM-dd) from dual; select to_char(sysdate,yyyy-MM-dd HH24:mi:ss) from dual; &#xff08;2&#xff09;处理数字&#xff1a; to_char(number,格式); select to_c…

linux(1):Linux经典面试题

Linux经典面试题,看看你会几题&#xff1f; 1. 在Linux系统中&#xff0c;以 文件 方式访问设备 。 2. Linux内核引导时&#xff0c;从文件 /etc/fstab 中读取要加载的文件系统。 3. Linux文件系统中每个文件用 i节点 来标识。 4. 全部磁盘块由四个部分组成&#xff0c;分别…

access是不是计算机编程,access编程简介之二:用宏还是VBA?

时 间:2012-07-03 09:47:12作 者:摘 要:Access编程简介之二&#xff1a;我应该使用宏还是应该使用 VBA 代码&#xff1f;正 文:要决定是使用宏或 VBA 还是同时使用这两者&#xff0c;主要取决于您计划部署或分发数据库的方式。例如&#xff0c;如果数据库存储在您的计算机上…

语言三做一年级算题_一年级数学期末考试,学生交卷说能考100分,快让你家孩子试试吧...

时间不知不觉已到7月份了&#xff0c;各地小学将要迎来期末水平考试了&#xff0c;小学生也是十分开心&#xff0c;考完试又要放假了&#xff0c;更有小学生笑着对老师说“今年的假期有点长啊”&#xff0c;一句话把老师逗得哭笑不得。今天上午同事所在小学举行了一年级数学期末…

express+vue+mongodb+session 实现注册登录

上个月写了一篇文章是 expressmongodbvue 实现增删改查. 只是简单的实现了增删改查功能&#xff0c;那么今天是在那个基础之上做了扩展&#xff0c;首先实现的功能有如下&#xff1a; 1. 支持注册&#xff0c;登录功能&#xff0c;用户可以注册完成后&#xff0c;进行登录&…