
分块
sun.strick
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
弹飞绵羊
因为极度讨厌splay。。平衡树又只会treap...所以非常不想看lct...然后就只好看看分块。。。对于分块边界的加加减减一直没有统一。觉得hzwer写的这种还比较好。那就借鉴一下好了。。。#include #include #include #include #include #include #define inf 0x7fffffff #define ll long long using转载 2016-06-25 22:45:54 · 518 阅读 · 0 评论 -
bzoj2120
分块是一种便捷打法,然而我的常数实在是有点 差。。。 #include #include #include #include #include #define N 10001 #define M 1000001 #define forup(i,a,b) for(int i=a;i<=b;i++) #define fordown(i,a,b) for(int i=a;i>=b;i--) using转载 2016-06-26 19:26:29 · 329 阅读 · 0 评论 -
bzoj3343
感觉除了打个标记和暴力重构。基本跟上一篇一样 #include #include #include #include using namespace std; int n,q,m,block; int a[1000001],b[1000001],pos[1000001],add[1000001]; void reset(int x) { int l=(x-1)*block+1,r转载 2016-06-26 19:45:49 · 292 阅读 · 0 评论 -
bzoj2724
不得不说分块的思想真的很神奇。。。 在线区间众数的分块做法比较多,这里提供一个思路: 首先离散化一下比较方便。 最初可能会有一个想法,是不是众数只可能是完整的块的众数,或者不完整的块出现的数呢?显然很容易得出反例。 应该是完整的所有块的众数,和不完整块中出现的数。 所以我们可以预处理f(i,j)表示第 i 块到第 j 块的众数(枚举 i 开个桶扫一遍)。 那转载 2016-06-27 19:38:07 · 396 阅读 · 0 评论 -
并不能ac jsoi2009
看到这种题目,,下意识先来了个莫队。。。然后。。。想想加个set。不就好了。。看看复杂度n^1.5*logn可能会卡过去吧。。。然后就写了一下。。然后就tle了。。。 #include #include #include #include #include #include #define N 100005 #define ll int using namespace std; int原创 2016-06-27 22:30:43 · 208 阅读 · 0 评论 -
分块大法好
3 函数求和 sum.in/.out/.cpp 3.1 问题描述 你有一个含N 个数字的数组A,元素标号1 到N,同时他也有N 个函 数,也标号1 到N。 第i 个函数会返回数组中标号Li 和Ri 之间的元素的和。 现在有以下两种询问: 1 x y 将数组的第x 个元素修改为y。 2 m n 询问标号在m 和n 之间的函数的值的和。 3.2 输入格式 输入数据第一行包含一个整数转载 2016-07-13 16:03:06 · 370 阅读 · 0 评论