分块
sun.strick
这个作者很懒,什么都没留下…
展开
-
弹飞绵羊
因为极度讨厌splay。。平衡树又只会treap...所以非常不想看lct...然后就只好看看分块。。。对于分块边界的加加减减一直没有统一。觉得hzwer写的这种还比较好。那就借鉴一下好了。。。#include#include#include#include#include#include#define inf 0x7fffffff#define ll long longusing转载 2016-06-25 22:45:54 · 465 阅读 · 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 · 282 阅读 · 0 评论 -
bzoj3343
感觉除了打个标记和暴力重构。基本跟上一篇一样#include#include#include#includeusing 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 · 239 阅读 · 0 评论 -
bzoj2724
不得不说分块的思想真的很神奇。。。在线区间众数的分块做法比较多,这里提供一个思路:首先离散化一下比较方便。最初可能会有一个想法,是不是众数只可能是完整的块的众数,或者不完整的块出现的数呢?显然很容易得出反例。应该是完整的所有块的众数,和不完整块中出现的数。所以我们可以预处理f(i,j)表示第 i 块到第 j 块的众数(枚举 i 开个桶扫一遍)。那转载 2016-06-27 19:38:07 · 327 阅读 · 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 · 174 阅读 · 0 评论 -
分块大法好
3 函数求和sum.in/.out/.cpp3.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 · 315 阅读 · 0 评论