首页 > 其他分享 >整除分块(数论分块)

整除分块(数论分块)

时间:2023-07-08 21:22:11浏览次数:36  
标签:分块 数论 ll long int 整除

整除分块是为了解决一个整除的求和的问题:sum(floor(n/i))(1<=i<=n)  ,如果直接暴力计算复杂度O(n),但整除分块的复杂度为O(2sqrt(n)),其中的2为常数,可以忽略,那么复杂度为O(sqrt(n))

下面给出整除分块的模板代码

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,l,r,ans=0;
int main(){
	cin>>n;
	for(l=1;l<=n;l=r+1){
		r=n/(n/l);
		ans+=(r-l+1)*(n/l);
	}	
	cout<<ans;
	return 0;
}

  

整除分块的主要应用分别是狄利克雷卷积、莫比乌斯函数与反转、杜教筛等

标签:分块,数论,ll,long,int,整除
From: https://www.cnblogs.com/zhanghx-blogs/p/17537879.html

相关文章

  • 数论
    算法记号\(a\modp\):\(a\)除\(p\)的余数,等于\(a-p\times\lfloor\frac{a}{p}\rfloor\)。\(a\midb\):\(a\)整除\(b\)即\(a\)是\(b\)的因数。素数判定试除法对于任意整数\(n\),它的因数\(d,\frac{n}{d}\)总是成对出现,所以可以枚举\([2,\sqrt{n}]\)内的数......
  • 「学习笔记」数列分块入门 1 ~ 9
    一天多一点的时间,做完了这\(9\)道题,除了最后一道题之外,都感觉良好.这里是黄学长的博客.数列分块入门1区间加法,单点查值.很入门的题目了.暴力处理两边不完整的块,完整的块维护一个tag加法标记./*Thecodewaswrittenbyyifan,andyifanisneutral!!!......
  • 数论基础
    数论基础导读:快速幂取模、欧式筛法、裴蜀定理(贝祖定理)、威尔逊定理、费马定理、(扩展)中国剩余定理。快速幂取模求\(a^b\%p\)我们有时间复杂度\(O(b)\)的办法。但数据规模放大时,我们的显示界面难免会出现一个老熟人TLE,我们需要更快的方法。根据初中数学,\(a^b\)可以化为\((a^2......
  • 数列分块入门
    1.数列分块入门1区间修改,单点查询点击查看代码#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;constintMAXN=5e4+5;intn,len,cnt;inta[MAXN],tag[MAXN];intpos[MAXN],l[MAXN],r[MAXN];inlinevoidadd(intx,inty,intk){if(x>y)retu......
  • 快速数论变换NTT学习笔记
    前言在这篇文章中我介绍了什么是\(\text{FFT}\),但是在文中我们也说了一嘴这玩意是有精度误差的,三角函数和复数导致我们不得不进行取整操作。只要毒瘤出题人原因,那就可以\(\text{HackFFT}\)。Tips:根据《NOI大纲》的内容,卡精度和卡常数通常是不允许的。所以\(\text{FFT}......
  • [数论]数论函数/莫比乌斯反演
    数论函数/莫比乌斯反演1.1积性函数数论函数:可以认为是定义在整数上的函数。1)积性函数定义(a,b)=1,f(a,b)=f(a)f(b)2)积性函数性质对于积性函数\(f\),是被所有\(p^e\)处的值决定的a=1,f(b)=f(1)f(b)​ \(f(60)=f(4)\timesf(15)=f(4)\timesf(3)\timesf(5......
  • 初等数论
    初等数论\(\mathcal{P}art\)1.基础概念整除对两个正整数\(a\),\(b\)(\(b\lea\)),如果存在一个整数\(k\)使得\(a=kb\),则称\(b\)整除\(a\),记作\(b|a\)带余除法对任何整数\(a\)和正整数\(b\),一定存在一个整数\(r\in[0,b)\)和一个整数\(k\),使得\(a=kb+r\),称上式......
  • HTML5 WebUploader 分块上传
    ​ 设计由来在实际的项目开发中常遇到超大附件上传的情况,有时候客户会上传GB大小的文件,如果按照普通的MultipartFile方式来接收上传的文件,那么无疑会把服务器给干崩溃,更别说并发操作了。于是笔者决定要写一个超大附件上传的方法,于是有此。功能实现图​编辑  功能介......
  • Dreaming of Freedom(数论,贪心)
    用nsqrt(n)的时间复杂度就能过//DreamingofFreedom:https://codeforces.com/problemset/problem/1826/C#include<bits/stdc++.h>//#defineintlonglongusingnamespacestd;constintN=1e5+10,mod=1e9+7;strings;intn,t,a[N],f[N],res,num,ans,m;boolvis[N];i......
  • B/S WebUploader 分块上传
    ​ java两台服务器之间,大文件上传(续传),采用了Socket通信机制以及JavaIO流两个技术点,具体思路如下: 实现思路:1、服:利用ServerSocket搭建服务器,开启相应端口,进行长连接操作2、服:使用ServerSocket.accept()方法进行阻塞,接收客户端请求3、服:每接收到一个Socket就建立一个新的线......