首页 > 其他分享 >数论分块

数论分块

时间:2023-10-26 21:44:24浏览次数:37  
标签:lfloor frac limits 分块 数论 sum sqrt rfloor

一、应用情景

求 \(\sum\limits_{i = 1}^{n} g(i)\lfloor\frac n i\rfloor,n\leq 10 ^{12}\)

二、常见结合

  • 莫比乌斯反演
  • ……

三、算法原理&代码实现

实际上,\(~\lfloor \frac n i\rfloor~\)的取值其实最多只有\(~2\times\sqrt n~\) 种:

对于\(~i\in [1,\sqrt n]~\):只有\(~\sqrt n~\)个

对于\(~i\in[\sqrt n,n]~\):\(~\lfloor \frac n i\rfloor~\)只有\(\sqrt n\)个

我们对于每一种取值,算出该种取值区间的 \(g(i)\) 的和,即可求出答案

通常地,为了求解 \(g(i)\) 我们通常会预处理前缀和,在数论分块的时候就可以 \(O(1)\) 求解了

时间复杂度:\(~O(\sqrt n)~\)

code:

void solve(){
	scanf("%lld",&n);
	ll ans = 0;
	for(int i = 1,j,num; i <= n; i = j + 1){
		num = n / i;
		j = n / num;
		ans += 1ll * num * (j - i + 1);
	}
	printf("%lld\n",ans);
	return;
}

五、练习

UVA11526 H(n)

题意

求解:

\[\sum_{i=1}^{n} \lfloor \frac n i \rfloor \]

题解

板子,只不过你需要注意当 \(n = 2147482647\) 时,\(for\) 循环的 \(i\) 有可能溢出,然后导致 RE/TLE 帖子

CQOI2007 余数求和

求解:\(~G(n,k)=\sum\limits_{i=1}^nk~mod~i~\)

solution:

\(~G(n,k)=\sum\limits_{i=1}^nk~mod~i~\)

\(~G(n,k)=\sum\limits_{i=1}^n(k - i \times \lfloor \frac k i\rfloor)~\)

\(~G(n,k)=n\times k - \sum\limits_{i=1}^ni \times \lfloor \frac k i\rfloor~\)

还是数论分块,只不过将(j - i + 1)改为(i + j) * (j - i + 1) / 2即可

标签:lfloor,frac,limits,分块,数论,sum,sqrt,rfloor
From: https://www.cnblogs.com/rickylin/p/17790471.html

相关文章

  • springboot 整合 gridfs 、webUploader实现大文件分块上传、断点续传、秒传
    主要的pom.xml:<dependency>      <groupId>mysql</groupId>      <artifactId>mysql-connector-java</artifactId>    </dependency><!--mongodb-->    <dependency>      <groupId>org.spri......
  • Nityacke的Top Cluster树分块
    我们有对序列分块的需求。所以我们有对树分块的需求。有些出题人喜欢把序列问题放到树上,从而让选手强行写树链剖分。但是我们想让大家知道,搬到仙人掌上也是可以的。先给出一些信息:一个树簇(cluster)是树上的一个连通子图,有至多两个点和全树的其他位置连接。这两个节点......
  • 数论学习笔记
    目录前言数论基础1.1整除1.2带余除法,同余质数2.1唯一分解定理2.2质数筛(线性筛)2.3欧拉函数最大公因数/最小公倍数3.1辗转相除法3.2裴蜀定理3.2扩展欧几里得算法线性同余方程4.1费马小定理4.2欧拉定理4.3逆元4.4求解线性同余方程4.5中国剩......
  • 算法笔记(6)数列分块
    原发表于我的博客前言分块不能说是一种数据结构,它是一种思想,无论是数列分块,块状链表,还是数论分块,莫队算法,都应用了分块的思想。本文主要介绍狭义上的分块,即数列分块。数列分块的引入数列分块可以说是暴力,一种优美的暴力,它的基本思路是,把数列分成若干块(一般取\(\sqrtn\)),分块......
  • 【学习笔记】数论——同余相关
    0前言闲的没事的时候可能会摸鱼写一写,都是些非常基础的东西。最高大概会写到exCRT和exBSGS吧,阶和原根往后的我也不会了,但是前面的内容会时不时来补充。为了方便偷懒,许多定理不会给出证明。1基本概念\(\gcd(a,b)\)或者\((a,b)\):\(a,b\)的最大公约数。\(\rm{lcm}......
  • HTTP——断点续传(分块传输)
    HTTP——断点续传(分块传输)断点续传:指的是在上传/下载时,将任务(一个文件或压缩包)人为的划分为几个部分,每一个部分采用一个线程进行上传/下载,如果碰到网络故障,可以从已经上传/下载的部分开始继续上传/下载未完成的部分,而没有必要从头开始上传/下载。可以节省时间,提高速度。断点续传......
  • 【ZROJ2730】简单题 可持久化分块题解
    Description给定一棵\(n\)个节点的树,每次询问编号为\([l,r]\)的点中有多少个是祖先关系。\(n,q\le10^5\)。Solution直接做的话树上的祖先关系不好统计,那么转化到\(\texttt{dfs}\)序上,如果\(u\)是\(v\)的祖先那么\(dfn_u\ledfn_v<dfn_u+siz_u\)。把\([d......
  • 数论分块
    数论分块在P2424偶然学到了这个算法,觉得很有意思,于是单拎出来再学习一下。数论分块,又叫整数分块,解决$f(n)=\sum_{i=1}^{n}g(i)\times\lfloor\frac{n}{i}\rfloor$一类问题。观察发现是成段出现,比如说时数列是这样的:设区间的右端点为,$r=\frac{n}{\lfloor\frac......
  • 数论筛法小记
    BaseSievebaseDirichletConvolutionSqrtDecomposition会挖坑,好让复习的时候长脑子。以下所有\(p\)都是质数,即\(p\in\mathbb{P}\),同时默认均为正整数。Base唯一分解定理(算术基本定理):\[\begin{align} \foralln>1,n=\prod\limits_{i=1}^kp_i^{t_i}\end{align}\]......
  • 14.3 Socket 字符串分块传输
    首先为什么要实行分块传输字符串,一般而言Socket套接字最长发送的字节数为8192字节,如果发送的字节超出了此范围则后续部分会被自动截断,此时将字符串进行分块传输将显得格外重要,分块传输的关键在于封装实现一个字符串切割函数,将特定缓冲区内的字串动态切割成一个个小的子块,当切割结......