首页 > 其他分享 ><学习笔记>整除分块

<学习笔记>整除分块

时间:2023-08-13 20:55:05浏览次数:39  
标签:lfloor frac 分块 sum rfloor 端点 整除

\([CQOI2007] 余数求和\)

求 \(G(n,k)=\sum_{i=1}^{n}k \mod i\)

因为 \(k \mod i=k-\lfloor \frac{k}{i}\rfloor*i\)

所以就成了求 \(n*k-\sum_{i=1}^{n}\lfloor \frac{k}{i}\rfloor*i\)

求后者:首先枚举左端点 \(l\),然后就可以求出左端点所属区间的 \(\lfloor \frac{k}{i}\rfloor\) 设为 \(t\) ,紧接着就可以求出右端点 \(r\) 为 \(k/t\) (因为整除时最大,再大一点 \(t\)会变小) ,计算区间的贡献就是 \((r-l+1)*t*(l+r)* \frac{1}{2}\) 长度 \(\times\) t \(\times\) 区间端点平均值,就可以解决了。

标签:lfloor,frac,分块,sum,rfloor,端点,整除
From: https://www.cnblogs.com/jinjiaqioi/p/17627247.html

相关文章

  • 分块
    题目链接如果用暴力来把\([l,r]\)区间内的数字都加上\(c\),肯定会超时。这时候,我们就可以用分块。分块基本思想分块,顾名思义,就是把一个数组分成很多区域,对于一整块区域,可以直接用一个数组来标记这个区间一共加上了几。对于不完整的块,可以直接在\(a\)数组上进行操作。我们需要......
  • 数论分块
    数论分块学习用途快速计算含有\(\lfloor{\frac{n}{i}}\rfloor\)的和式(\(i\)为变量)引理引理1\[\foralla,b,c\in\mathbb{N_+},\quad\Big\lfloor\frac{a}{bc}\Big\rfloor=\bigg\lfloor\frac{\lfloor\frac{a}{b}\rfloor}{c}\bigg\rfloor\]证明1\[\text{let}\qua......
  • 容斥原理:能被整除的数
    给定一个整数 <spanid="MathJax-Span-2"class="mrow"><spanid="MathJax-Span-3"class="mi">n 和 <spanid="MathJax-Span-5"class="mrow"><spanid="MathJax-Span-6"class="......
  • BigDecimal判断整除/除尽
    整除:在除法中只有被除数、除数和商都是整数的情况下,才可以说是“整除”。除尽:在除法中只要除到某一位时没有余数,不管被除数、除数和商是整数还是小数,都可以说是“除尽”。BigDecimal判断是否能被整除/***判断被除数是否能被除数整除**@paramdividend被除数*@paramdivisor......
  • [Ynoi2016] 这是我自己的发明(根号分治+分块/莫队)
    题目传送门soltion简单题换根显然可以拆成\(O(1)\)个区间,这里先不管。直接做法是莫队,把双子树拆成\(dfs\)序上的双前缀,可以直接莫队,但是常数比较大。另一种做法是根分,对颜色出现次数分治,大于的求出\(dfs\)序的前缀和即可,小于的因为一共只有\(O(n\sqrtn)\)个点对,所以......
  • 分块,优雅的暴力
    来看一下一个例题:现在给出一个长度为\(N\)序列A,定义两个操作如下:1lrv,表示从\(A_l\simA_r\)每个数都加上\(v\)。2lr,对\(A_l\simA_r\)求和。传统的线段树可以很优秀地实现这两个操作,但是需要打\(lazytag\)。同时因为线段树(非动态开点)的空间复杂度为......
  • Nginx实现浏览器端大文件分块上传
    ​PHP用超级全局变量数组$_FILES来记录文件上传相关信息的。1.file_uploads=on/off 是否允许通过http方式上传文件2.max_execution_time=30 允许脚本最大执行时间,超过这个时间就会报错3.memory_limit=50M 设置脚本可以分配的最大内存量,防止失控脚本占用过多内存,此指......
  • javascript实现浏览器端大文件分块上传
    ​ 以ASP.NETCoreWebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API,包括文件的上传和下载。 准备文件上传的API #region 文件上传  可以带参数        [HttpPost("upload")]        publicJsonResultuploadProject(I......
  • js实现浏览器端大文件分块上传
    ​ 第一点:Java代码实现文件上传FormFilefile=manform.getFile();StringnewfileName= null;Stringnewpathname= null;StringfileAddre= "/numUp";try{    InputStreamstream=file.getInputStream();// 把文件读入    StringfilePath=request.......
  • vue实现浏览器端大文件分块上传
    ​ 这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数下面直接贴代码吧,一些难懂的我大部分都加上注释了:上传文件实体类:看得出来,实体类中已经有很多我们需要的功能了,还有实用的属性。如MD5秒传的信息。pub......