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

我没想到居然就学到分块了...哇我还一直觉得分块听起来挺牛逼的一直想学的来着qwq(其实之前好像vjudge上有道题是用分块做的?等下放链接qwq 所以想着就写个学习笔记趴qwq 首先知道分块的时间复杂度 O(n√n) 发现分块其实就是个有优化的暴力? 肥肠暴力,,, 简单说下,就是分成√n块,然后大段的随便维护一下局部的随便朴素暴力掉就成了,, 哪里牛逼,,,浪费我感情QAQ 详细港下趴还是qwq 举个栗子好讲些qwq 假如给了一个包含n个数的序列a,请支持区间修改操作和区间查询操作 显然可以…
上模板题例题: [CQOI2007]余数求和 洛谷 BZOJ 题目大意:求 $\sum^n_{i=1}k\ mod\ i$ 的值. 等等……这题就学了三天C++的都会吧? $1\leq n,k\leq 10^9$.(一口老血喷到屏幕上) $O(n)$ 行不通了,考虑别的做法. 我们来看一下 $\lfloor\frac{x}{i}\rfloor$ 的值. $x=9$:(不包括0,只有4种取值?) i 1 2 3 4 5 6 7 8 9 10 x/i 9 4 3 2 1 1 1 1 1 0 $x=1…
传送门 题目描述 在乡下的小路旁种着许多蒲公英,而我们的问题正是与这些蒲公英有关. 为了简化起见,我们把所有的蒲公英看成一个长度为n的序列\((a_1,a_2..a_n)\),其中 \(a_i\)为一个正整数,表示第i棵蒲公英的种类编号. 而每次询问一个区间 [l,r],你需要回答区间里出现次数最多的是哪种蒲公英,如果有若干种蒲公英出现次数相同,则输出种类编号最小的那个. 注意,你的算法必须是在线的 Solution 分块 但是要维护些什么呢? 假设我们已经对原序列进行了分块,对于一个询问\([…
整除分块 用于计算$\sum_{i=1}^n f(\lfloor{n/i} \rfloor)*i$之类的函数 整除的话其实很多函数值是一样的,对于每一块一样的商集中处理即可 若一个商的左边界为l,则右边界为$\lfloor{\frac{n}{\lfloor\frac{n}{l}\rfloor}}\rfloor$ 这样时间复杂度就是$O(\sqrt{n})$ 如果是类似$\sum_{i=1}^n f(\lfloor{n/i} \rfloor)*i \ opt \ f(\lfloor{m/i} \r…
似乎之前讲评vjudge上的这题的时候提到过?但是并没有落实(...我发现我还有好多好多没落实?vjudge上的题目还没搞,然后之前考试的题目也都还没总结?天哪我哭了QAQ 然后这三道题我都是通过一道板子题来讲解的,分别是普通,带修,树上 普通莫队 首先总结一下,最简单的莫队,就是有很多询问,并且知道[l,r]的答案可以推出[l-1,r][l,r+1]这一类的,我们就可以通过不再重复计算同一个区间而节约效率 莫队好像最正统的是要用曼哈顿距离最小生成树的?但是太复杂辣所以一般都是直接用分块的 然后…
对于图论--虽然本蒟蒻也才入门--于是有了这篇学习笔记\(qwq\) 一般我们对于最短路的处理,本蒟蒻之前都是通过构建二维数组的方式然后对每两个点进行1次深度或者广度优先搜索,即一共进行\(n\)^2遍深度(DFS)或广度优先搜索(BFS)--直到学习了Floyd算法\(qwq\) 先上核心代码\(Code\): for(k=1;k<=n;k++) { for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { if(e[i][j]>e[i][1]+e[1][j…
\(Min\_25\)筛学习笔记 这种神仙东西不写点东西一下就忘了QAQ 资料和代码出处 资料2 资料3 打死我也不承认参考了yyb的 \(Min\_25\)筛可以干嘛?下文中未特殊说明\(P\)均指质数集合,\(p_i\)或\(p\)指某个具体质数. 求一类积性函数\(f(x)\)的前缀和,需要满足\(f(p)\)可以写成多项式的形式,或者操作一下可以写成多项式(如例题),且\(f(p^k)\)能快速求出. 讲真学这个东西比我什么都不会的时候学\(FFT\)都累. Round 1 先求质数的贡…
基本上只是整理了一下框架,具体的学习给出了个人认为比较好的博客的链接. PART1 数论部分 最大公约数 对于正整数x,y,最大的能同时整除它们的数称为最大公约数 常用的:\(lcm(x,y)=xy\gcd(x,y)\) 裴蜀定理 定理:对于方程\(ax+by=c\),其存在解的充要条件是\(gcd(a,b)|c\),可以拓展到n元的方程. 证明的话应该自己yy一下还是很容易(显然可得),不过要是想要严谨证明还是去百度吧qwq 扩展欧几里得定理 首先我们都知道\(gcd(a,b)=gcd(b,a…
Hadoop学习笔记(7) ——高级编程 从前面的学习中,我们了解到了MapReduce整个过程需要经过以下几个步骤: 1.输入(input):将输入数据分成一个个split,并将split进一步拆成<key, value>. 2.映射(map):根据输入的<key, value>进生处理, 3.合并(combiner):合并中间相两同的key值. 4.分区(Partition):将<key, value>分成N分,分别送到下一环节. 5.化简(Reduce):将中间结…
osgEarth学习笔记1.        通过earth文件创建图层时,可以指定多个影像数据源和多个高程数据源,数据源的顺序决定渲染顺序,在earth文件中处于最前的在渲染时处于最底层渲染:所以如果有高低精度不同的影响数据或者高程数据,在创建earth文件时要将粗精度的数据放在上方xml节点,高精度的放在其下面的节点:2.        osgEarth自带多种驱动器,不同的驱动器驱动不同的数据源,自己也可以扩展驱动器读取相应的数据:3.        可以通过profile属性指定数据的投影…