
分块算法
Dave_L
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构专题-分块算法 区间加法 区间内x的前驱
给出一个长为n的数列,以及n个操作,操作0区间加法,操作1询问区间内小于某个值x的前驱(比其小的最大元素)。Code:#include <bits/stdc++.h>using namespace std;const int AX = 1e6+66;set<int>s[AX];int a[AX];int b[AX];int add[AX];int le...原创 2018-05-16 22:26:44 · 423 阅读 · 0 评论 -
UESTC 数据结构专题 帆宝RMQ 分块+vector+结构体排序二分
思路:这题可以说是写的吐血了,只因为没有考虑到没有1操作,直接2操作询问的情况,分块之后就要rubuild ,不然直接二分查找vector内数据不是有序的就会混乱!! Code:#include <bits/stdc++.h>#define LL long long#define INF 0x3f3f3f3fusing namespace std;const int ...原创 2018-05-23 20:27:19 · 359 阅读 · 0 评论 -
练习赛6 AB暴力 C组合数学 E莫队 G计算几何 I floyd K线段树+二分
A 题意:每个人有三个值,找出所有满足自己最大的两个值大于所有人最小的两个值的人。 思路:暴力,存所有人最小的值中最大的,和第二小值最大的,分别和每个人最大次大的比较。 Code:#include &lt;iostream&gt;#include &lt;cstdio&gt;#include &lt;algorithm&gt;#define LL long longusing n...原创 2018-07-22 17:39:29 · 369 阅读 · 4 评论 -
HDU 多校第四场Problem B. Harvest of Apples 莫队算法
BS(n,m) = S(n,m-1) + C(n,m) S(n,m) = 2 * S(n-1,m) - C (n-1,m) 这个式子可由杨辉三角得出:上面一行的相邻两个元素相加得下面的元素,那么下面元素的和就是上面一行和的2倍减去上一行最后一个元素,因为它对下面一行只贡献了一次。 由上两个式子可得: S(n,m) = S(n,m+1) + C(n,m+1) S(n+1,m) = ...原创 2018-08-02 10:10:53 · 309 阅读 · 0 评论 -
分块算法求区间众数 + 洛谷4168 P4168 [Violet]蒲公英
分块算法求众数的主要思路就是,先预处理出任意整个块之间的众数,然后查询的时候O(1)的到L,R区间内整块的众数,然后再暴力枚举左右多余的数中是否有超过整个块中的众数。P4168开氧气才能过。Code:#include <bits/stdc++.h>#define LL long longusing namespace std;map<int,int>mp;c...原创 2018-10-04 22:40:41 · 537 阅读 · 0 评论 -
HDU4638 不带修改莫队算法
HDU4638题意:n个人,几个人为一组的要求是号连续,每组价值是人数的平方,询问m个区间回答每个区间分几组能达到和最大。思路:明显是一组人越多越好,那相当于问给定区间能分几组的问题了,离线用莫队算法,把询问存起来。需要注意的就是当前后两个询问区间没有重叠部分的时候,如果先进行了删除操作,那么就可能导致出错,因为删除了本来不存在的点再添加 和 添加点后再删除得到的结果是不一样的。所以莫队的...原创 2018-11-24 09:06:43 · 259 阅读 · 0 评论