首页 > 其他分享 >分块:优雅的暴力

分块:优雅的暴力

时间:2023-11-03 17:14:02浏览次数:27  
标签:frac 暴力 分块 复杂度 sqrt 优雅 预处理

之前我并没有感觉到分块的暴力属性

今天卡常的时候莫名其妙的感觉到了

我甚至觉得自己经历了分块的诞生历程

今天本来在对一个分块题卡常

但是我直接写的纯暴力,一直差一点卡过

于是我想到了各种优化:

加 \(inline\) (别说还真有用),加 \(register\) (感觉这个没用)...

\(bitset\) 记录之前这组询问有没有被访问过,有的话直接输出

事实上我还是没卡过

然后我就想到,如果我预处理出某一个区域,之后包含这个区域的询问不就可以优化了吗?

于是我预处理了中间的一块区域,经验证,预处理 \([\frac{n}{3},\frac{2n}{3}]\) 时取到最优复杂度 \(O(\frac{2n^2}{3})\)

可惜还是过不了,于是有了接下来的发现:

如果我预处理两个区域,不就能取得更优的时间复杂度了吗?

那如果三块,四块呢?

直到 \(\sqrt n\) 块,取得最优时间复杂度 \(n\sqrt n\) ,这便是分块了

标签:frac,暴力,分块,复杂度,sqrt,优雅,预处理
From: https://www.cnblogs.com/yhy-trh/p/chunking.html

相关文章

  • python 如何优雅的使用retrying进行重试请求
    retrying模块一、简介retrying是一个python的重试包,可以用来自动重试一些可能运行失败的程序段,retrying提供一个装饰器函数retry,被装饰的函数就会在运行失败的情况下重新执行,默认只要一直报错就会不断重试安装:pipinstallretrying二、使用方法1、无参数使用r......
  • 公司新来了个同事,代码写得是真优雅呀!代码如诗
    来源:https://www.cnblogs.com/javastack/p/17786356.html来源:https://www.cnblogs.com/liuboren/p/17017421.html0.前言本篇文章是<<代码整洁之道>>的学习总结,通过这篇文章你将了解到整洁的代码对项目、公司和你的重要性,以及如何书写整洁的代码.通过命名、类、函数、测试这......
  • command_block的 《分块相关杂谈》注
    目录0x00分块概论0x10基础数列分块原文链接0x00分块概论大概可以理解为将一段数组分成长度大约为\(\sqrt{n}\)长度的块,对于一段区间\(\left[l,r\right]\),我们可以将其拆分为三大部分:\(\left[l,bl\timeslen+len-1\right]\)的暴力区间,\(\left[bl\timeslen+len,br\time......
  • win10 11 优雅的找到窗口的程序杀死他
    找程序杀死是经常的工作,如果卡了或者太慢.那么如何找到呢.1.ctrl+shift+esc2.进程/右上角/视图/按类型分组.然后第一组里面就有.  最近换新电脑用上win11了.效果很好.推荐都用用.想要点的一些设置更方便了.......
  • 数论分块
    一、应用情景求\(\sum\limits_{i=1}^{n}g(i)\lfloor\fracni\rfloor,n\leq10^{12}\)二、常见结合莫比乌斯反演……三、算法原理&代码实现实际上,\(~\lfloor\fracni\rfloor~\)的取值其实最多只有\(~2\times\sqrtn~\)种:对于\(~i\in[1,\sqrtn]~\):只有\(~\sqrt......
  • gitee 上传提示文件过大的暴力解决方法
    因为经常遇到上传文件过大,每次都是重新拉在复制过去,今天无聊就想彻底解决一下这个问题。 Gitee的免费版本只能上传单个文件小于100M利用红色框的命令行查找出是哪个文件,下面红色文字是我查找的文件,然后执行下面命令行,即可上传成功。gitfilter-branch--force--index-filte......
  • 优雅的使用String字符串处理各种类型转换
    (文章目录)......
  • 如何优雅地使用 pb_ds
    如何优雅地使用pb_ds定义头文件总所周知,dev年久失修,对这种高端科技并不是很支持,直接背头文件又长又臭。但如果使用的其他高端编辑器,你可以直接写:#include<bits/extc++.h>使用dev的话你也需要先写这个,然后编译会出错。大概是点击下面编译错误的加粗的第一行,然后你就进入......
  • 【Springboot文件上传】前后端双开,大文件秒传、断点续传的解决方案和优雅实现
    思路和解决方案探讨秒传这里指的“秒传”,是指:当用户选择上传一个文件时,服务端检测该文件之前是否已经被上传过,如果服务器已经存有该文件(完全一样),就立马返回前端“文件已上传成功”。前端随即将进度条更新至100%。这样给用户的感觉就是“秒传”的感觉。对于每一个上传到服务......
  • springboot 整合 gridfs 、webUploader实现大文件分块上传、断点续传、秒传
    主要的pom.xml:<dependency>      <groupId>mysql</groupId>      <artifactId>mysql-connector-java</artifactId>    </dependency><!--mongodb-->    <dependency>      <groupId>org.spri......