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

数论分块

时间:2024-01-29 23:24:11浏览次数:22  
标签:leq 数论 分块 int 弄混 根号

将O(n)优化成o(根号n)


[CQOI2007] 余数求和

题目描述

给出正整数 \(n\) 和 \(k\),请计算

\[G(n, k) = \sum_{i = 1}^n k \bmod i \]

  • 对于 \(100\%\) 的数据,保证 \(1 \leq n, k \leq 10^9\)
void solve(){
	int n,k;cin>>n>>k;
	int ans=n*k;
	//注意推导公式字母不要弄混
	for(int l=1,r=1;l<=n;l=r+1){
		if((k/l)==0)break;//注意特判分母为0的情况,不然会RE
		r=k/(k/l);
		r=min(n,r);//防止多算
		//cerr<<l<<" "<<r<<endl;
		ans-=(k/l)*(r-l+1)*(l+r)/2;
	}
	cout<<ans<<endl;
	
}

标签:leq,数论,分块,int,弄混,根号
From: https://www.cnblogs.com/mathiter/p/17995566

相关文章

  • 数论1-素数
    Part1前置记号约定整数集合:$\Z={...,-2,-1,0,1,2,…}$自然数集合:\(\N=\{0,1,2,…\}\),下文若不特殊说明,则出现的所有字母皆代表自然数。整除:若\(a=b\timesk\),则\(b\)整除\(a\),记作\(b\mida\),否则记作\(b\nmida\)约数:若\(b\mida\)且\(b\g......
  • 莫队算法/分块思想
    莫队算法/分块思想引入对于区间问题,常常会使用线段树维护,但是对于一些数据合并复杂度无法\(O(1)\)解决。所以不能使用,应当使用莫队算法。定义对于离线处理的查询问题,通过合理安排这些计算的次序,得到一个较优的复杂度例题1一个长度为\(n\)的序列,询问\(m\)次\([L,R]\)......
  • 数论总结
    一.定义\(\varphi(n)=\sum\limits_{i=1}^{n}[\gcd(i,n)=1]\),即\(n\)以内与\(n\)互质的数的个数,叫做欧拉函数,念做/faɪ/。\(\mu(n)=\begin{cases}1&n=1\\0&\existsi\in[1,m],k_i>1\\(-1)^m&\foralli\in[1,m],k_i=1\end{cases}\),记\(n=\pro......
  • 数论习题
    -P2568GCD给定\(n\),求:\[\sum\limits_{p\in\mathbb{P}}\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}[\gcd(i,j)=p]\]其中\(\mathbb{P}\)为质数集。推式子:\[\begin{aligned}\sum\limits_{p\in\mathbb{P}}\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}[......
  • 一对一视频app开发,如何分块加载大文件?
    一对一视频app开发,如何分块加载大文件?后端:使用Koa2实现分块传输首先,在一对一视频app开发中,我们需要设置后端以支持分块传输编码。以下是使用Koa2的示例代码:constKoa=require("koa");constfs=require("fs");constapp=newKoa();app.use(async(ctx)=>......
  • 数论习题
    -P2568GCD给定\(n\),求:\[\sum\limits_{p\in\mathbb{P}}\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}[\gcd(i,j)=p]\]其中\(\mathbb{P}\)为质数集。推式子:\[\begin{aligned}\sum\limits_{p\in\mathbb{P}}\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}[......
  • 基础数论大杂烩
    exgcd一,前置知识:裴蜀定理:若有\(a,b\)且\(a,b\)不全为0,则存在整数\(x,y\),使得\(ax+by=gcd(a,b)\)。二,算法过程:作用:给定\(a,b,c\),求解\(ax+by=c\)的整数解。我们先考虑求解\(ax+by=gcd(a,b)\)。由于\(gcd(a,b)=gcd(b,a\%b)\),所以有:\(\begin{cases}ax_1+by_1=gcd(a,b)\\bx_......
  • 数论题 推柿子
    自己重新推一遍柿子。/fendouP2568GCD题目传送门求\[\sum\limits_{p\inprime}\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}[\gcd(i,j)=p]\]gcd的套路转换(\[\sum\limits_{p\inprime}\sum\limits_{i=1}^{\lfloor\frac{n}{p}\rfloor}\sum\limits_{j=1}^{\lfloor\f......
  • 数论分块
    数论分块算法简介能够在\(\mathcal{O(\sqrt{n})}\)的时间复杂度内计算出含有\(\sum\limits_{i=1}^{n}\left\lfloor\frac{k}{i}\right\rfloor\)等式子。令\(a_i=\left\lfloor\frac{k}{i}\right\rfloor\),其主要思想为显然存在若干段连续区间内\(a_i\)值相同,......
  • 数论——Pollard-Rho 学习笔记
    数论——Pollard-Rho学习笔记非平凡因数:\(n\)除了\(1\)和\(n\)以外的因数。Pollard-Rho算法是一种用于快速分解非平凡因数的算法。Pollard-Rho能在期望复杂度\(\mathcalO(n^{1/4})\)的时间内找到\(n\)的最小的非平凡因数。而根据Pollard-Rho,我们可以用来加速质......