BIT
Lei2015_
这个作者很懒,什么都没留下…
展开
-
CodeForces Round 218 D. Vessels(学姐我没用线段树系列)
这道题的意思是给你一个水塔,可以从中间任意一层倒水,告诉你每一层的容量,这一曾层满后水会流入下一层,总共有N层,再满了就直接流到地上。然后给出N个操作 操作1:往第n层中加x的水 操作2:询问每一层装有多少水 用BIT保存所剩空间的前缀和,每次加水的时候二分最终水会流到哪一层,然后加水的时候依次更新BIT,虽然式单点更新但是每一次更新都会直接把该层的空间沾满,下一次不会再更新,所以总共是O(原创 2013-12-08 22:59:15 · 1033 阅读 · 0 评论 -
POJ 2299 再水一发数状数组求逆序数
这道题用 map 来离散化又T了。。想起来了有一次 CF 怕直接开数组过大使用 map 结果T了的悲剧故事。。。 能用数组 hash 的坚决不用 map #include #include #include #include #include #include using namespace std; #define ll long long ll bit[1000000]; #defin原创 2014-02-04 12:58:19 · 543 阅读 · 0 评论 -
HDU 3874 树状数组 边查询边更新
树状数组的好题, 对于一对查询,边查询边更新。 那个只能出现一个这个条件就是更新 每次把上一次出现的地方的东西消灭掉,换成最新的这个地方的。 第一次做这种边查询,边更新的题目呢。 好题! HDU 上要用 I64 代替 lld 啊 真不习惯 #include #include #include #include using namespace std; #define MAX原创 2014-02-24 22:05:57 · 429 阅读 · 0 评论 -
wata 哥 的 vector<MAX> G 第一次不能用 POJ 3321 树状数组
关键是括号序列啊 还有,括号序列上一段代表一棵树,一个点还是代表一个点。 用指针表示图 #include #include #include #include #include #include #include #include using namespace std; #define ll long long #define P pair #define PDI pai原创 2014-02-27 01:55:15 · 606 阅读 · 0 评论 -
Codeforces Round 232 Div 1 C On Changing Tree 树状数组 或 线段树
题目地址 http://codeforces.com/problemset/problem/396/C 树状数组,对于搞括号序列还是有一手的,关键是因为括号序列的题老是逮着某个点询问,而他的更新又往往是涉及一棵子树。 当然,树状数组的更新也要满足可加性的。 对于向某棵子树上的节点均增加 X 这种操作,我们可以在括号序列的左端点增加x,右端点+1处增加 -x,这样查询到内部的时候就会增加x,原创 2014-02-28 22:33:48 · 577 阅读 · 0 评论 -
POJ 1195 二维树状数组
模板 #include #include #include #include #include #include #include #include using namespace std; #define ll long long #define P pair #define PDI pair #define fst first #define sec second #de原创 2014-03-02 15:58:59 · 600 阅读 · 0 评论 -
POJ 2761 据说可以练习线段树主席树划分树splay和treap的一道题。。我用BIT+二分+离散化搞的。。
查询区间第 K 小的数,这个二分+树状数组足够了啊。 虽然我是想练练treap 的,但是看到能写 BIT 就停不下来啊。。。 离散化好恶心。。。用map T 到死。还有大于1000W 的数数组开不下,只能 hash。 找了两三个素数才过的去。 hash的时候素数不是越大越好啊。。? 中途开了好多个struct来保存信息。。。 #include #include #include原创 2014-03-08 17:26:34 · 870 阅读 · 0 评论