[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 ...
随机推荐
- LintCode 539: Move Zeroes
终于下决心开始刷题了! 选择LintCode而不是LeetCode主要是因为LintCode操作更顺手,希望能够坚持下去. 还是循序渐进吧,数据结构和算法的东西很久没碰都很生疏了,先找找感觉. 这是一 ...
- 51nod1773 A国的贸易
基准时间限制:2 秒 空间限制:524288 KB 分值: 40 A国是一个神奇的国家. 这个国家有 2n 个城市,每个城市都有一个独一无二的编号 ,编号范围为0~2n-1. A国的神奇体现在,他们 ...
- 20155117王震宇 2016-2017-2 《Java程序设计》第九周学习总结
教材学习内容总结 JDBC JDBC API是一个Java API,可以访问任何类型表列数据,特别是存储在关系数据库中的数据.JDBC代表Java数据库连接. JDBC库中所包含的API任务通常与数据 ...
- laravel 模糊查询
模糊查询: Model::where('field_name','like','%'.$keywords.'%')->get() 转载:http://wenda.golaravel.com/qu ...
- 2017ACM暑期多校联合训练 - Team 7 1002 HDU 6121 Build a tree (深搜+思维)
题目链接 Problem Description HazelFan wants to build a rooted tree. The tree has n nodes labeled 0 to n− ...
- NYOJ 35 表达式求值 (字符串处理)
题目链接 描述 ACM队的mdd想做一个计算器,但是,他要做的不仅仅是一计算一个A+B的计算器,他想实现随便输入一个表达式都能求出它的值的计算器,现在请你帮助他来实现这个计算器吧. 比如输入:&quo ...
- jsoup抓取网页报错UnsupportedMimeTypeException
今天在用Jsoup爬虫的时候两次遇到下面错误 Exception in thread "main" org.jsoup.UnsupportedMimeTypeException: ...
- MYSQL的隐式类型转换
官方文档中是这么说的 当操作者使用不同类型的操作数,操作数类型兼容的出现使 转换.一些 发生隐式转换.例如,MySQL会自动 将数字转换为字符串的必要,反之亦然. 也可以将数字转换为字符串明确 使用( ...
- 设计模式之笔记--解释器模式(Interpreter)
解释器模式(Interpreter) 定义 解释器模式(Interpreter),给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子. 类图 描述 Expr ...
- 升级vs17中的cordova-simulate
visual studio 17自带的cordova-simulate有一个bug,动态添加的html代码里面如果带有header,会出现js异常导致后面js程序终止执行,这个问题已经给他们提了iss ...