莫比乌斯反演III
"haik, hen wir." -- somebody
概述
莫比乌斯反演通过一些恒等变形使需要高时间复杂度计算的式子变为可快速计算的。
一般来说,将形如\(\sum_{d|n}\)的式子提到前面,形如\(\sum_{i=1}^n\)的式子放到后面,这样后面就可以简化运算。
变换
扩展变换
\(\sum_{i=1}^nf(i)=\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}f(id)\)
抽取变换
\((a,b)=\sum_{d=1}^n[(a,b)=d]d\)
重排变换/交叉变换
\(\lfloor\frac{n}{k}\rfloor=\sum_{i=1}^n[k|i]\)
\(\sum_{i=1}^n\lfloor\frac{n}{i}\rfloor f(i)=\sum_{i=1}^nf(i)\sum_{j=1}^n[i|j]=\sum_{j=1}^n\sum_{i|j}f(i)\)
山东变换
\(d(nm)=\sum_{i|n}\sum_{j|m}[(i,j)=1]\)
重庆变换/双希变换
\(\sum_{d=1}^n\sum_{t=1}^nf(dt)g(d)h(t)=\sum_{D=1}^nf(D)\sum_{d|D}g(d)h(\frac{D}{d})\)
注:该变换一般用于最后一步,然后考虑如何快速处理\(\sum_{d|D}g(d)h(\frac{D}{d})\),如线性筛等。
杜教筛变换
\(\sum_{i=1}^n\sum_{d|i}f(d)g(\frac{i}{d})=\sum_{i=1}^ng(i)\sum_{d=1}^{\lfloor\frac{n}{i}\rfloor}f(d)\)
常用结论
K-GCD
\(\sum_{i=1}^n\sum_{j=1}^m[(i,j)=k]=\sum_{i=1}^{\lfloor \frac{n}{k}\rfloor}\sum_{j=1}^{\lfloor \frac{m}{k}\rfloor}[(i,j)=1] = \sum_{d=1}^{min({\lfloor \frac{n}{k}\rfloor},{\lfloor \frac{m}{k}\rfloor})}\mu(d)\lfloor \frac{n}{kd}\rfloor \lfloor\frac{m}{kd}\rfloor\)
复习时更新:注意\([d=(i,j)]\)与\([d|(i,j)]\)不同。
莫比乌斯反演III的更多相关文章
- [SDOI2015][bzoj 3994][Luogu P3327] 约数个数和 (莫比乌斯反演)
题目描述 设d(x)d(x)d(x)为xxx的约数个数,给定NNN.MMM,求 ∑i=1N∑j=1Md(ij)\sum^{N}_{i=1}\sum^{M}_{j=1} d(ij)i=1∑Nj=1∑M ...
- hdu1695 GCD(莫比乌斯反演)
题意:求(1,b)区间和(1,d)区间里面gcd(x, y) = k的数的对数(1<=x<=b , 1<= y <= d). 知识点: 莫比乌斯反演/*12*/ 线性筛求莫比乌 ...
- BZOJ 2154: Crash的数字表格 [莫比乌斯反演]
2154: Crash的数字表格 Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 2924 Solved: 1091[Submit][Status][ ...
- BZOJ2301: [HAOI2011]Problem b[莫比乌斯反演 容斥原理]【学习笔记】
2301: [HAOI2011]Problem b Time Limit: 50 Sec Memory Limit: 256 MBSubmit: 4032 Solved: 1817[Submit] ...
- Bzoj2154 Crash的数字表格 乘法逆元+莫比乌斯反演(TLE)
题意:求sigma{lcm(i,j)},1<=i<=n,1<=j<=m 不妨令n<=m 首先把lcm(i,j)转成i*j/gcd(i,j) 正解不会...总之最后化出来的 ...
- 莫比乌斯函数筛法 & 莫比乌斯反演
模板: int p[MAXN],pcnt=0,mu[MAXN]; bool notp[MAXN]; void shai(int n){ mu[1]=1; for(int i=2;i<=n;++i ...
- 【BZOJ-2440】完全平方数 容斥原理 + 线性筛莫比乌斯反演函数 + 二分判定
2440: [中山市选2011]完全平方数 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2371 Solved: 1143[Submit][Sta ...
- POI2007_zap 莫比乌斯反演
题意:http://hzwer.com/4205.html 同hdu1695 #include <iostream> #include <cstring> #include & ...
- hdu.5212.Code(莫比乌斯反演 && 埃氏筛)
Code Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submi ...
随机推荐
- python len()函数的用法
函数:len() 返回字符串.列表.字典.元组等长度. 语法:len(str) str:要计算的字符串.列表.字典.元组等 返回值:字符串.列表.字典.元组等元素的长度. Test: 1:计算字符串的 ...
- Linux进程启动过程分析do_execve(可执行程序的加载和运行)---Linux进程的管理与调度(十一)
execve系统调用 execve系统调用 我们前面提到了, fork, vfork等复制出来的进程是父进程的一个副本, 那么如何我们想加载新的程序, 可以通过execve来加载和启动新的程序. x8 ...
- 用好lua+unity,让性能飞起来——lua与c#交互篇
前言 在看了uwa之前发布的<Unity项目常见Lua解决方案性能比较>,决定动手写一篇关于lua+unity方案的性能优化文. 整合lua是目前最强大的unity热更新方案,毕竟这是唯一 ...
- python——函数之生成器
1 生成器函数的含义 生成器是一个返回可以迭代对象的函数,它是一个特殊的迭代器,但迭代器的抽象层级更高且比较复杂需要实现很多方法.相较迭代器而言,生成器简单使用. 2 生成器的创建方式 2.1 ...
- 自定义实现HashMap的put、get方法
public class HashMap{ public static void main(String[] args){ put("aa", "wo ai ni&quo ...
- Java多线程(四)java中的Sleep方法
点我跳过黑哥的卑鄙广告行为,进入正文. Java多线程系列更新中~ 正式篇: Java多线程(一) 什么是线程 Java多线程(二)关于多线程的CPU密集型和IO密集型这件事 Java多线程(三)如何 ...
- wangedit
<template> <el-row id="AddRoom"> <el-col :span="5">.</el-co ...
- js证书批量生成与打包下载
前边有提到最近的一个证书生成保存下载打印的需求. 之前实现的是一个单个操作的页面,现在把实现的批量效果和进度效果的代码展示出来. html <button class="btn btn ...
- Python实现矿池
自建P2POOL矿池详细教程(高级篇)http://8btc.com/article-1804-1.html p2pool比特币矿池教程综合篇(包含linux矿池教程)https://www.cybt ...
- 绝版珍珍藏:web前端技术学习指南
绝版珍珍藏:web前端技术学习指南 优秀的Web前端开发工程师要在知识体系上既要有广度和深度!应该具备快速学习能力. 前端开发工程师不仅要掌握基本的Web前端开发技术,网站性能优化.SEO和服务器端的 ...