【转载】数论学习笔记(Blog of tyqtyq)
from a famous oier \(\texttt{tyqtyq}\)请点链接tyqtyq~! - 博客园 (cnblogs.com)
数论分块
\(\sum_{i=1}^{n} \lfloor\frac{n}{i}\rfloor \times f(i)\)
在\(O(n)\)筛出\(f(i)\)的前缀和后, 可以在单次\(O(\sqrt n)\)的复杂度下求出上式.
考虑\(\lfloor\frac{n}{i}\rfloor\)的取值个数. 在 \(i \leq \sqrt n\)时最多只有\(\sqrt n\)个\(i\), 故最多只有\(\sqrt n\)个取值.
在\(i>\sqrt n\)时, \(\lfloor\frac{n}{i}\rfloor \leq \frac{n}{i}<\sqrt n\), 故最多只有\(\sqrt n-1\)个取值.
因此我们可以考虑枚举\(\lfloor\frac{n}{i}\rfloor\)的取值. 因为函数不下降我们考虑枚举每个取值区间的左右端点. 不妨设某个取值区间的左端点是\(l\), 考虑求出该取值区间的右端点\(r\). 不妨设\(\lfloor\frac{n}{l}\rfloor = k\), 我断言\(r = \lfloor\frac{n}{k}\rfloor\). 因为\(kr \leq n \leq (k+1)r\), 所以必然在取值区间内. 又\(k(r+1) \geq n\)所以\(r+1\)不在取值区间内. 故右端点为\(r\).
莫比乌斯反演
两个性质
\(\sum\limits_{d|n} \mu(d) = [n=1]\) (经常用来展开\([f(n)=1]\))
\(\sum\limits_{d|n} \varphi(d) = n\)
对于 \(\gcd\) 的反演(出现\(\gcd\)的时候枚举\(\gcd\)也是一种时常奏效的方法):
\]
对于\(\sigma_0\)的反演
\]
对于\(\varphi\)的反演
\]
反演本质
\]
狄利克雷卷积 与 杜教筛
下文中的\(A\),\(B\),\(C\)均指某积性函数.
狄利克雷卷积
定义:
\(A*B(n) = \sum\limits_{d|n} A(d)B(\frac{n}{d})\)
几个常用的卷积
\(\varphi *I = id\)
\(\mu * I = \epsilon\)
\(\epsilon * A = A\)
\(A*(B*C) = (A*B)*C\)
\(A*B = B*A\)
\((A+B)*C = A*C+B*C\)
杜教筛的原理
设\(A = B*C\), 于是有
\]
不妨设\(S(n) = \sum\limits_{i=1}^{n} B(i)\)所以\(C(1)S(n) = \sum\limits_{i=1}^{n}A(i) - \sum\limits_{d=2}^{n}C(d)S(\lfloor\frac{n}{d}\rfloor)\)
若选择一个较好的\(C\)和\(A\), 则可以通过数论分块在\(T(n) = O(\frac{n}{\sqrt m}+m)\)的时间复杂度内完成此问题, 其中\(m\)是一个常数, 代表我们需要先使用线性筛筛出\(S(1\sim m)\), 可以发现在\(m = n^{\frac23}\)时算法复杂度为\(O(n^\frac23)\)为最优.
【转载】数论学习笔记(Blog of tyqtyq)的更多相关文章
- 五一DAY1数论学习笔记
by ruanxingzhi 整除性 如果a能把b除尽,也就是没有余数,则我们称a整除b,亦称b被a整除.(不是除以,是整除!!) 记作:\(a|b\) |这个竖杠就是整除符号 整除的性质 自反性 对 ...
- [转载]Log4net学习笔记
Log4net 学习笔记: 主要是根据apache站点整理的: 原文链接:http://logging.apache.org/log4net/release/sdk/ http://logging.a ...
- [转载]pytest学习笔记
pytest学习笔记(三) 接着上一篇的内容,这里主要讲下参数化,pytest很好的支持了测试函数中变量的参数化 一.pytest的参数化 1.通过命令行来实现参数化 文档中给了一个简单的例子, ...
- 数论学习笔记之解线性方程 a*x + b*y = gcd(a,b)
~>>_<<~ 咳咳!!!今天写此笔记,以防他日老年痴呆后不会解方程了!!! Begin ! ~1~, 首先呢,就看到了一个 gcd(a,b),这是什么鬼玩意呢?什么鬼玩意并不 ...
- 转载-python学习笔记之输入输出功能读取和写入数据
读取.写入和 Python 在 “探索 Python” 系列以前的文章中,学习了基本的 Python 数据类型和一些容器数据类型,例如tuple.string 和 list.其他文章讨论了 Pytho ...
- 转载-Python学习笔记之文件读写
Python 文件读写 Python内置了读写文件的函数,用法和C是兼容的.本节介绍内容大致有:文件的打开/关闭.文件对象.文件的读写等. 本章节仅示例介绍 TXT 类型文档的读写,也就是最基础的文件 ...
- 转载——JavaScript学习笔记:取数组中最大值和最小值
转载自:http://www.w3cplus.com/javascript/calculate-the-max-min-value-from-an-array.html. 取数组中最大值 可以先把思路 ...
- (转载)Android学习笔记⑨——android.content.ActivityNotFoundException异常处理
异常1:Java.lang.ClassNotFoundException 08-13 18:29:22.924: E/AndroidRuntime(1875):Caused by: Java.lang ...
- 转载-python学习笔记之文件I/O
Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你 ...
- 转载-python学习笔记之常用模块用法分析
内置模块(不用import就可以直接使用) 常用内置函数 help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像函数一样调用 repr(ob ...
随机推荐
- 一个ABAQUS model需要的Component
component of abaqus model Abaqus模型由几个不同的组件组成,它们共同描述了要分析的物理问题. a abaqus model 至少要有: discrete goemtry ...
- ppt 实用技巧总结
全是图片且颜色单一 解决方案:在图片上添加图形,加图标 效果图 2.文本功能10个 解决方案:添加背景图片+文本+图标 效果图 只有文本 没有过多内容怎么办
- 1h玩转kubernetes
学习k8s就跟学习office三件套上,95%的人只会5%,而5%的知识可以干95%的事情,所以不要觉的k8s难 1 kubernetes 1 什么是kubernetes Kubernetes 是一个 ...
- Golang 入门 : 变量声明
变量声明 在Go中,变量是包含值的一块存储.可以使用变量声明为变量命名.只需使用var关键字,后跟所需的名称以及变量将保存的值的类型. 一旦你声明了一个变量,就可以用=为它分配该类型的任何值: qua ...
- Content-Encoding:br 是一种什么编码格式?
一.前言 在之前测试HTTP应答的压缩过程中无意间发现在Google浏览器下出现了 Content-Encoding:br 这种的编码格式,当时我就纳闷了,前面不是一直在研究GZip压缩吗?br压缩又 ...
- 【虚拟机】VirualBox安装macOS系统
[虚拟机]VirualBox安装macOS系统 零.创建虚拟机 类型选择 Mac OS X 版本选择 macOS 10.13 High Sierra (64-bit) 注意:这边我设置的名称为 Mac ...
- 《机器人SLAM导航核心技术与实战》第1季:第11章_自主导航中的数学基础
<机器人SLAM导航核心技术与实战>第1季:第11章_自主导航中的数学基础 视频讲解 [第1季]11.第11章_自主导航中的数学基础-视频讲解 [第1季]11.1.第11章_自主导航中的数 ...
- 团队项目:杰杰Bond团队成员介绍
项目 内容 这个作业属于哪个课程 2025年春季软件工程(罗杰.任健) 这个作业的要求在哪里 [T.1] 团队项目:团队成员介绍 我在这个课程的目标是 学习软件工程相关知识,培养编程和团队协作能力,做 ...
- ESP32+Arduino入门(一):开发环境搭建
前言 作为一名硬件小白,在动手组装了一下小智AI之后,感觉还挺有意思的,也想开始学习ESP32了. ESP32介绍 ESP32 是乐鑫科技(Espressif Systems)推出的一款高性能.低功耗 ...
- Hystrix两种隔离方式对比
在微服务架构中,我们不可避免的与Hystrix打交道,最近在面试过程中,也总是被问到Hystrix两种熔断方式的区别,今天,就给大家做个小结. 首先,Hystrix熔断方式主要有两种: 线程池隔离 ...