我没想到居然就学到分块了...哇我还一直觉得分块听起来挺牛逼的一直想学的来着qwq(其实之前好像vjudge上有道题是用分块做的?等下放链接qwq

所以想着就写个学习笔记趴qwq

首先知道分块的时间复杂度 O(n√n)

发现分块其实就是个有优化的暴力?

肥肠暴力,,,

简单说下,就是分成√n块,然后大段的随便维护一下局部的随便朴素暴力掉就成了,,

哪里牛逼,,,浪费我感情QAQ

详细港下趴还是qwq

举个栗子好讲些qwq

假如给了一个包含n个数的序列a,请支持区间修改操作和区间查询操作

显然可以线段树树状数组艹过去

但是这里讲的是分块,就说下分块

分块就把它分成长度为√n的多少多少块

然后对于修改操作,我们可以把完全包含的块直接修改这个块的sum和add,不完全包含的块(也就两边的嘛)就暴力修改

查询一样的,完全包含直接加上这一块的sum,不完全包含的暴力求和

真的很暴力嘛所以,优雅的暴力应该说是?

显然复杂度不会超√n嘛,完

啊还有一个很重要的忘记讲了

就是,分块一般来说在什么时候会很有用的

我们可以发现分块和线段树树状数组什么的其实很多是重合的嘛,然后线段树和树状数组理论上还快一些,那为什么要用分块呢

首先树状数组,局限性很大,可以先pass掉

然后线段树,我们可以发现它是从它的左右崽推过来的嘛,那如果不满足能合并性质的就不能用线段树了

所以这时候就可以用分块艹过去qwq(典型例题比如蒲公英?众数是不能继承的嘛qwq所以就不能用线段树辣qwq)

(讲个,小彩蛋...

就是我用分块艹过了线段树的模板

然后我惊喜地发现分块的时间居然比线段树优秀???恩???线段树的常数这么大的嘛???突然感觉线段树好鸡肋啊...又难打又慢QAQ

分块学习笔记qwq的更多相关文章

  1. 整除分块学习笔记+[CQOI2007]余数求和(洛谷P2261,BZOJ1257)

    上模板题例题: [CQOI2007]余数求和 洛谷 BZOJ 题目大意:求 $\sum^n_{i=1}k\ mod\ i$ 的值. 等等……这题就学了三天C++的都会吧? $1\leq n,k\leq ...

  2. luogu P4168 蒲公英+ 分块学习笔记

    传送门 题目描述 在乡下的小路旁种着许多蒲公英,而我们的问题正是与这些蒲公英有关. 为了简化起见,我们把所有的蒲公英看成一个长度为n的序列\((a_1,a_2..a_n)\),其中 \(a_i\)为一 ...

  3. 莫比乌斯反演&整除分块学习笔记

    整除分块 用于计算$\sum_{i=1}^n f(\lfloor{n/i} \rfloor)*i$之类的函数 整除的话其实很多函数值是一样的,对于每一块一样的商集中处理即可 若一个商的左边界为l,则右 ...

  4. 莫队学习笔记(未完成QAQ

    似乎之前讲评vjudge上的这题的时候提到过?但是并没有落实(...我发现我还有好多好多没落实?vjudge上的题目还没搞,然后之前考试的题目也都还没总结?天哪我哭了QAQ 然后这三道题我都是通过一道 ...

  5. 图论学习笔记·$Floyd$ $Warshall$

    对于图论--虽然本蒟蒻也才入门--于是有了这篇学习笔记\(qwq\) 一般我们对于最短路的处理,本蒟蒻之前都是通过构建二维数组的方式然后对每两个点进行1次深度或者广度优先搜索,即一共进行\(n\)^2 ...

  6. $Min\_25$筛学习笔记

    \(Min\_25\)筛学习笔记 这种神仙东西不写点东西一下就忘了QAQ 资料和代码出处 资料2 资料3 打死我也不承认参考了yyb的 \(Min\_25\)筛可以干嘛?下文中未特殊说明\(P\)均指 ...

  7. OI数学 简单学习笔记

    基本上只是整理了一下框架,具体的学习给出了个人认为比较好的博客的链接. PART1 数论部分 最大公约数 对于正整数x,y,最大的能同时整除它们的数称为最大公约数 常用的:\(lcm(x,y)=xy\ ...

  8. Hadoop学习笔记(7) ——高级编程

    Hadoop学习笔记(7) ——高级编程 从前面的学习中,我们了解到了MapReduce整个过程需要经过以下几个步骤: 1.输入(input):将输入数据分成一个个split,并将split进一步拆成 ...

  9. osgEarth学习笔记(转载)

    osgEarth学习笔记1.        通过earth文件创建图层时,可以指定多个影像数据源和多个高程数据源,数据源的顺序决定渲染顺序,在earth文件中处于最前的在渲染时处于最底层渲染:所以如果 ...

随机推荐

  1. 使用tinyproxy搭建http代理

    一.前言   二.搭建环境 * Linux laptop 2.6.32-45-generic #100-Ubuntu SMP Wed Nov 14 10:41:11 UTC 2012 i686 GNU ...

  2. Django 访问数据库

    通过命令行方式访问数据库: [root@localhost web]$ python manage.py shell # 进入交互模式(先安装ipython) In [1]: from blog.mo ...

  3. Android Studio 修改Logcat的颜色

    在Android Studio里面默认的logcat显示颜色是灰色的,不同等级的log是没有颜色分别的,如图 这一点远不如Eclipse好看,但是Android Studio的logcat的颜色其实也 ...

  4. [SublimeText] Sublime Text 2 运行 Python 脚本中文路径解决方法

    在 SublimeText 中直接运行 Python 脚本,出现以下报错提示: Running python -u C:\Documents and Settings\Administrator\桌面 ...

  5. linux实现开机自启动脚本

    Linux下(以RedHat为范本)添加开机自启动脚本有两种方法,先来简单的; 一.在/etc/rc.local中添加如果不想将脚本粘来粘去,或创建链接什么的,则:step1. 先修改好脚本,使其所有 ...

  6. 使用IDEA实现tomcat的热加载

    1.打开tomcat的edit configuration,一定要选择war exploded  2.选择update classes and resources  3.配置基本就是这样,后面选择de ...

  7. c++学习笔记—二叉树基本操作的实现

    用c++语言实现的二叉树基本操作,包括二叉树的创建.二叉树的遍历(包括前序.中序.后序递归和非递归算法).求二叉树高度,计数叶子节点数.计数度为1的节点数等基本操作. IDE:vs2013 具体实现代 ...

  8. C语言字节对齐问题详解

    引言 考虑下面的结构体定义: typedef struct{ char c1; short s; char c2; int i; }T_FOO; 假设这个结构体的成员在内存中是紧凑排列的,且c1的起始 ...

  9. 10分钟10行代码开发APP(delphi 应用案例)

    总结一下用到的知识(开发环境安装配置不计算在内): 第六章  使用不同风格的按钮: 第十七章  让布局适应不同大小与方向的窗体: 第二十五章 使用 dbExpress访问 InterBase ToGo ...

  10. POP3协议分析

    http://m.blog.csdn.net/bripengandre/article/details/2192111 POP3协议分析 第1章.     POP3概述 POP3全称为Post Off ...