[SDOI2015]约数个数和 --- 简单反演
求\(\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}d(ij)\)
不知道怎么讲.....
首先考虑\(d(ij)\)究竟是什么
首先,很自然地想到,既然是求\(ij\)的约数个数
因此就枚举\(i,j\)的约数
即\(d(ij) =\sum\limits_{x|i}\sum\limits_{y|j}...\)
注意到,我们不能重复地统计
我们从唯一分解得形式来考虑
因为多个质因子个和一个质因子的情况是一致的
因此我们考虑一个质因子
假设\(i = p^a, j = p^b\)且\(a\leq b\)
那么对于\(ij = p^{a+b}\),它的约数中质因子的取值范围为\([0,\;\;a+b]\)
如果我们能制定一种规则使得每个质因子取值只与一种\(i,j\)的质因子方案对应就好了
记当前枚举的\(ij\)约数为\(d\),且\(d = p^c = p^{a'+b'}\),其中\(a'\)来源于\(i\),\(b'\)来源于\(j\)
注意到,对于\([0,\;\;b]\),我们都可以只让\(a' = 0, b' = [0,b]\)来达到
而\([b+1,\;\;a+b]\),我们可以只让\(a'=[1,a], b' = b\)来达到
而\(b'=b\)相当于\(b'=0\)(枚举因子的特殊性)
也就是说\(a'=0\)或\(b'=0\)时对应一种情况
也就是只要判断\([gcd(i, j)=1]\)即可
因此\(d(ij) = \sum\limits_{x|i}\sum\limits_{y|j} [gcd(x, y)=1]\)
那么,简单地化下式子,答案就能出现
$\sum\limits_{i=1}^{n} \sum\limits_{j=1}^{m} d(ij) = \sum\limits_{i=1}^{n} \sum\limits_{j=1}^{m} \sum\limits_{x|i} \sum\limits_{y|j} [gcd(x, y)=1] $
\(=\sum\limits_{i=1}^{n} \sum\limits_{j=1}^{m} \sum\limits_{x|i} \sum\limits_{y|j} \sum\limits_{d|x \;and \;d|y} \mu(d)\)
注意到,我们如果先枚举\(d\),相当于枚举它的倍数\(i, j\),再枚举\(i, j\)内有多少数含\(d\)因子
\(=\sum\limits_{d=1}^{min(n,m)} \mu(d)\sum\limits_{d|i}^{n} \sum\limits_{d|j}^{m} [n/ d][m/d]\)
预处理\(\mu\)以及某个神奇的函数就可以回答了
[SDOI2015]约数个数和 --- 简单反演的更多相关文章
- P3327 [SDOI2015]约数个数和 莫比乌斯反演
P3327 [SDOI2015]约数个数和 莫比乌斯反演 链接 luogu 思路 第一个式子我也不会,luogu有个证明,自己感悟吧. \[d(ij)=\sum\limits_{x|i}\sum\li ...
- 【BZOJ3994】[SDOI2015]约数个数和 莫比乌斯反演
[BZOJ3994][SDOI2015]约数个数和 Description 设d(x)为x的约数个数,给定N.M,求 Input 输入文件包含多组测试数据. 第一行,一个整数T,表示测试数据的组 ...
- [BZOI 3994] [SDOI2015]约数个数和(莫比乌斯反演+数论分块)
[BZOI 3994] [SDOI2015]约数个数和 题面 设d(x)为x的约数个数,给定N.M,求\(\sum _{i=1}^n \sum_{i=1}^m d(i \times j)\) T组询问 ...
- BZOJ 3994: [SDOI2015]约数个数和 [莫比乌斯反演 转化]
2015 题意:\(d(i)\)为i的约数个数,求\(\sum\limits_{i=1}^n \sum\limits_{j=1}^m d(ij)\) \(ij\)都爆int了.... 一开始想容斥一下 ...
- 洛谷P3327 [SDOI2015]约数个数和(莫比乌斯反演)
题目描述 设d(x)为x的约数个数,给定N.M,求 \sum^N_{i=1}\sum^M_{j=1}d(ij)∑i=1N∑j=1Md(ij) 输入输出格式 输入格式: 输入文件包含多组测试数据.第 ...
- BZOJ3994: [SDOI2015]约数个数和(莫比乌斯反演)
Description 设d(x)为x的约数个数,给定N.M,求 Input 输入文件包含多组测试数据. 第一行,一个整数T,表示测试数据的组数. 接下来的T行,每行两个整数N.M. Out ...
- luogu P3327 [SDOI2015]约数个数和 莫比乌斯反演
题面 我的做法基于以下两个公式: \[[n=1]=\sum_{d|n}\mu(d)\] \[\sigma_0(i*j)=\sum_{x|i}\sum_{y|j}[gcd(x,y)=1]\] 其中\(\ ...
- [SDOI2015]约数个数和 莫比乌斯反演
---题面--- 题解: 为什么SDOI这么喜欢莫比乌斯反演,,, 首先有一个结论$$d(ij) = \sum_{x|i}\sum_{y|j}[gcd(x, y) == 1]$$为什么呢?首先,可以看 ...
- BZOJ 3994: [SDOI2015]约数个数和3994: [SDOI2015]约数个数和 莫比乌斯反演
https://www.lydsy.com/JudgeOnline/problem.php?id=3994 https://blog.csdn.net/qq_36808030/article/deta ...
随机推荐
- 使用Skyworking 作全链路api调用监控,Integration of Skyworking, auditing the whole chain circuit.
Applicable scenario: Structure Map ~ Skywalking uses elasticsearch to store data, don't mistake elas ...
- zabbix 监控服务器的TCP状态
本文介绍如何监控TCP的11种状态: 1.命令选择: ss or netstat netstat 在 Centos7上已经不再支持,ss 打印基于socket的统计信息,实际运行下来,ss的速度比ne ...
- 2008 Round 1A C Numbers (矩阵快速幂)
题目描述: 请输出(3+√5)^n整数部分最后3位.如果结果不超过2位,请补足前导0. 分析: 我们最容易想到的方法肯定是直接计算这个表达式的值,但是这样的精度是不够的.朴素的算法没有办法得到答案.但 ...
- python初步学习-异常
异常 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行. 一般情况下,在python无法正常处理程序时就会发生一个异常. 异常是python对象,表示一个错误. 当python脚本 ...
- C# 动态调取 soap 接口
调用示例 string url = "http://localhost:8080/server/PatientService.asmx"; Hashtable ht = new H ...
- HTTP、HTTPS
http是一种无状态协议,通过短暂保持浏览器核服务器间通信可以有效减少为保持连接而耗费的额外开销.无状态意味着浏览器和服务器完成一次通信后,连接会释放.在下一次会话发起时,浏览器核服务器端不会记录上一 ...
- php遍历路径——php经典实例
php遍历路径——php经典实例 代码: <html> <head> <title>遍历目录</title> <meta charset=&quo ...
- 【Git/GitHub学习笔记】一键更新多个git仓库至远程
因为同时在本地维护几个Github的仓库,每次更新后每个仓库要重复三步提交同步,有点麻烦. 发现可以写.sh文件来实现一键更新. 比如我要更新我的BlogBackup和CodeRepo两个仓库的代码如 ...
- 安装ssh-keygen
转载自:http://www.daoan.com/forums/index.php?forumid=5&mods=topicdisplay&postid=4 sudo apt-get ...
- [转载]锁无关的数据结构与Hazard指针——操纵有限的资源
Lock-Free Data Structures with Hazard Pointers 锁无关的数据结构与Hazard指针----操纵有限的资源 By Andrei Alexandrescu a ...