[BZOJ3994][SDOI2015]约数个数和

3994: [SDOI2015]约数个数和

Time Limit: 20 Sec  Memory Limit: 128 MB Submit: 1104  Solved: 762 [Submit][Status][Discuss]

Description

设d(x)为x的约数个数,给定N、M,求  

 

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
图片好像挂了。。。那张图是$\sum_{i=1}^n\sum_{j=1}^m d\left(ij\right)$
如果没挂请忽视上面那排话
由对称性,不妨设$n\le m$
有一个结论$d\left(xy\right)=\sum_{i\mid x}\sum_{j\mid y}\left[gcd\left(i,j\right)=1\right]$
这个证明的话可以考虑每个质因数的贡献。。。意会一下
那么可以得到
$ans=\sum_{x=1}^n\sum_{y=1}^m\sum_{i\mid x}\sum_{j\mid y}\left[gcd\left(i,j\right)=1\right]$
$=\sum_{i=1}^n\sum_{j=1}^m\lfloor\frac{n}{i}\rfloor\lfloor\frac{m}{j}\rfloor\left[gcd\left(i,j\right)=1\right]$
$=\sum_{i=1}^n\sum_{j=1}^m\lfloor\frac{n}{i}\rfloor\lfloor\frac{m}{j}\rfloor\sum_{d\mid i,d\mid j}\mu\left(d\right)$
$=\sum_{d=1}^n\mu\left(d\right)\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{d}\rfloor}\lfloor\frac{n}{id}\rfloor\lfloor\frac{m}{id}\rfloor$
$=\sum_{d=1}^n\mu\left(d\right)\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{d}\rfloor}\lfloor\frac{\lfloor\frac{n}{d}\rfloor}{i}\rfloor\lfloor\frac{\lfloor\frac{m}{d}\rfloor}{i}\rfloor$
$=\sum_{d=1}^n\mu\left(d\right)\left(\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\lfloor\frac{\lfloor\frac{n}{d}\rfloor}{i}\rfloor\right)\left(\sum_{j=1}^{\lfloor\frac{m}{d}\rfloor}\lfloor\frac{\lfloor\frac{m}{d}\rfloor}{i}\rfloor\right)$
令$g\left(n\right)=\sum_{i=1}^n\lfloor\frac{n}{i}\rfloor$
那么$ans=\sum_{d=1}^n\mu\left(d\right)g\left(\lfloor\frac{n}{d}\rfloor\right)g\left(\lfloor\frac{m}{d}\rfloor\right)$
而$g$可以通过枚举每个分子然后不停的往倍数上加$1$,然后扫一遍前缀和求出,我为了用Latex码数学公式现在已经头昏眼花神志不清,如果你觉得我已经开始胡言乱语了导致你没看懂那就看看代码吧
预处理时间复杂度为$O\left(nlnn\right)$
似乎神犇们都是$O\left(n\right)$预处理???我还是太菜了哎
每次询问的话分块求,总时间复杂度$O\left(T\sqrt{n}\right)$
#include <cstdio>
#include <algorithm>
using namespace std;
typedef long long ll;
const int maxn = 50000 + 10;
bool mark[maxn] = {false};
int mu[maxn], g[maxn] = {0}, sum[maxn];
int pri[maxn], prn = 0;
void shai(){mu[1] = 1;for(int i = 2; i < maxn; i++){if(!mark[i]){mu[i] = -1;pri[++prn] = i;}for(int j = 1; j <= prn && pri[j] * i < maxn; j++){mark[i * pri[j]] = true;if(i % pri[j] == 0){mu[i * pri[j]] = 0;break;}else mu[i * pri[j]] = -mu[i];}}for(int i = 1; i < maxn; i++)for(int j = i; j < maxn; j += i)g[j]++;sum[0] = g[0] = 0;for(int i = 1; i < maxn; i++){sum[i] = mu[i] + sum[i - 1];g[i] += g[i - 1];}
}
int main(){shai();int T, n, m;ll ans;scanf("%d", &T);while(T--){scanf("%d %d", &n, &m);if(n > m) swap(n, m);ans = 0;for(int p, i = 1; i <= n; i = p + 1){p = min(n / (n / i), m / (m / i));ans += (ll) (sum[p] - sum[i - 1]) * g[n / p] * g[m / p];}printf("%lld\n", ans);}return 0;
}

 

转载于:https://www.cnblogs.com/ruoruoruo/p/7678841.html

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

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

相关文章

大力智能台灯T6 结构拆解

近几年教育硬件产品层出不穷&#xff0c;教育硬件赛道布局时间较长的有网易、讯飞、步步高系等公司&#xff0c;2020年10月&#xff0c;字节跳动旗下大力教育经过两年多的调研和研发&#xff0c;高调推出首款智能硬件产品“大力智能作业台灯” T5。 上市一年取得不错的销售成绩…

第5章 IDA Pro

5.1 加载一个可执行文件 默认情况下IDA Pro的反汇编代码中不包含PE头或资源节&#xff0c;可以手动指定加载。 5.2 IDA Pro接口 5.2.1 反汇编窗口模式 二进制模式/图形模式&#xff1a; 图形模式&#xff1a;红色表示一个条件跳转没有被采用&#xff0c;绿色表示这个条件跳转被…

使用 typescript ,提升 vue 项目的开发体验(1)

此文已由作者张汉锐授权网易云社区发布。欢迎访问网易云社区&#xff0c;了解更多网易技术产品运营经验。前言&#xff1a;对于我们而言&#xff0c;typescript 更像一个工具官方指南从 vue2.5 之后&#xff0c;vue 对 ts 有更好的支持。根据官方文档&#xff0c;vue 结合 type…

Linux进程间通信——使用共享内存

//本文转载http://blog.csdn.net/ljianhui/article/details/10253345下面将讲解进程间通信的另一种方式&#xff0c;使用共享内存。一、什么是共享内存顾名思义&#xff0c;共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递…

不踩雷不将就 京东智能产品30天无忧退

剁手节已经来临&#xff0c;铺天盖地的促销信息让人应接不暇&#xff0c;恰好又是换季&#xff0c;确实需要买买买一波了。各种满减活动让人眼花缭乱&#xff0c;这波堪称全年最大力度的促销活动&#xff0c;令人是又喜又怕。倘若之前踩过雷的朋友&#xff0c;必然现在会谨慎许…

Linux进程间通信——使用信号量

//转自http://blog.csdn.net/ljianhui/article/details/10243617 这篇文章将讲述别一种进程间通信的机制——信号量。注意请不要把它与之前所说的信号混淆起来&#xff0c;信号与信号量是不同的两种事物。有关信号的更多内容&#xff0c;可以阅读我的另一篇文章&#xff1a;L…

麦克风阵列音频检查方法和标准

为确保产品能够符合算法要求&#xff0c;务必提前做好相关设计&#xff0c;尽量确保各项指标满足如下标准。 音频评测工作&#xff0c;主要集中在研发设计阶段&#xff1b;针对产品形态的不同&#xff0c;测试可分为裸板测试和整机测 试&#xff0c;下表为不同阶段需要测试的…

SVG格式图片转成HTML中SVG的Path路径

AI图标制作完成之后&#xff0c;保存的svg文件包含许多AI的信息&#xff0c;如果要在HTML中使用&#xff0c;我们需要在svg文件中提取/修改信息&#xff0c;重新保存。 1、在AI中已经完成图标&#xff0c;要保存SVG文件&#xff0c;点击“文件(File)”-“另存为(Save As)”&…

Linux内核Socket参数调优

可调优的内核变量存在两种主要接口&#xff1a;sysctl命令和/proc文件系统&#xff0c;proc中与进程无关的所有信息都被移植到sysfs中。IPV4协议栈的sysctl参数主要是sysctl.net.core、sysctl.net.ipv4&#xff0c;对应的/proc文件系统是/proc/sys/net/ipv4和/proc/sys/net/cor…

vue.js单页面应用实例

一&#xff1a;npm的安装由于新版的node.js已经集成了npm的环境&#xff0c;所以只需去官网下载node.js并安装&#xff0c;安装完成后使用cmd检测是否成功。测试node的版本号&#xff1a;node -v测试npm的版本号&#xff1a;npm -v以上提示代表安装成功二&#xff1a;vue.js环境…

AA级与AAA级台灯 重要指标对比

读写作业台灯&#xff0c;按照国家标准&#xff08;GB/T 9473-2017 读写作业台灯性能要求 &#xff09;台灯只有两个等级 即为A级和AA级&#xff1a; 但是大家在各个购物网站挑选台灯尤其是挑选孩子学习用的读写台灯时&#xff0c;会发现很多厂家宣称台 灯为AAA级&#xff0c…

零基础学python,看完这篇文章,你的python基础就差不多了!干货【1】

2019独角兽企业重金招聘Python工程师标准>>> Python基础语法和面向对象&#xff08;下一篇分享面向对象&#xff09; Python基础语法 1. 认识Python 1.1 Python 简介 Python 的创始人为吉多范罗苏姆&#xff08;Guido van Rossum&#xff09;。 Python 的设计目标&a…

消费类电子认证测试资料清单

消费类电子上市前必须取得相关认证&#xff0c;其中最常见的有3C、SRRC和CTA等强制性认证&#xff0c;还有类似TUV和Rohs等自愿性认证&#xff0c;现将常见认证测试资料清单小结如下&#xff1a; CCC测试认证&#xff1a; 测试项&#xff1a;EMC、安规和随机等。 SRRC核准&am…

SVG 相关整理

1. 中文参考手册&#xff1a; http://www.runoob.com/svg/svg-reference.html SVG HTML5 资源教程 http://www.html5tricks.com/tag/svg/ 2.SVG 入门到精通 http://www.w3cplus.com/blog/tags/411.html 3.SVG开发包整理 http://www.oschina.net/project/tag/420/svg http://www…

液晶拼接控制器

液晶拼接墙系统是由液晶拼接显示单元、液晶拼接支架、液晶拼接控制器器和信号源组合而成的。液晶拼接控制器则是液晶拼接系统的重要组成部分。 液晶拼接控制器一般分为两种&#xff1a;内置嵌入式液晶拼接器、外置液晶拼接控制器。 内置嵌入式液晶拼接器 内置嵌入式液晶拼接器只…

03-类与对象——课后动手动脑

1.早期我们经常这样定义变量 int value100&#xff1b; 前面的示例中这样定义变量 MyClass obj new MyClass(); 这两种方式定义的变量是一样的吗&#xff1f; 这两种方式定义的变量是一样的&#xff0c;因为它们都是类的实例化&#xff0c;只是第一种是一个简便的写法&#xf…

有道智能学习灯 初体验

有道词典笔在业内树立了一个标杆&#xff0c;自认为有道出品必须精品&#xff01; 但是今天刚初步体验了一下有道智能学习灯&#xff0c;硬件方面说实话有点意外&#xff0c;猜测这应该不是有道词典 笔团队打造的硬件产品吧。 现在将个人体验感受表格化陈述如下&#xff1a;…

centos忘记root用户的密码

方法&#xff1a; 1.在开机启动的时候快速按键盘上的“E”键 或者“ESC”键&#xff08;如果做不到精准快速可以在启动前一直按着或者不停的按&#xff09;&#xff0c;会进入如下界面。如果你的有多个操作系统就会出现多个内核&#xff0c;就会出现多个选项 2. 选择你忘记密码…

MySql(18)——Linux MySQL主从配置

MySQL 主从配置 Author:xushuyi 参照技术&#xff1a;http://www.cnblogs.com/kevingrace/p/6256603.html 1. 主从数据库 1、主库&#xff1a;192.168.56.100 2、从库&#xff1a;192.168.56.102 3、创建主从数据库一定要保证主从数据库字符集编码的一致性&#xff0c;否则主从…

元器件 失效分析 过程介绍

硬件产品在使用过程中&#xff0c;常常会出现功能失效的情况。排除装配异常的话&#xff0c;功能失效一般是电路可能出现故障&#xff0c;具体可能是某个元器件损坏了。需要研发及时分析定位故障原因及时改善排除故障&#xff0c;尤其是在试产阶段&#xff0c;显得十分重要&…