#include #include #include using namespace std;#define MAX 1000+10#define MAXN 1002int c[MAX][MAX], list[MAX][MAX];int lowbit(int x){ return x&(-x);}v...
分类:
编程语言 时间:
2015-01-29 14:08:42
阅读次数:
193
当要频繁的对数组元素进行修改,同时又要频繁的查询数组内任一区间元素之和的时候,可以考虑使用树状数组. 通常对一维数组最直接的算法可以在O(1)时间内完成一次修改,但是需要O(n)时间来进行一次查询.而树状数组的修改和查询均可在O(log(n))的时间内完成. 一、回顾一维树状数组 假设一维数组...
分类:
编程语言 时间:
2015-01-28 21:07:13
阅读次数:
200
一. 题意: 裸二维树状数组,求(L, B) (R, T) 形成的矩形内所有点的和。 ans = getSum(R+ 1, T + 1) - getSum(R+ 1, B) - getSum(L, T + 1) + getSum(L, B) #include #include #define ...
分类:
其他好文 时间:
2015-01-20 20:21:18
阅读次数:
185
题目大意:给定一个矩阵,多次求某个子矩阵中的第k小
分块解法见 http://blog.csdn.net/popoqqq/article/details/41356899
《论除最小割外题目解法从来与题目名称无关系列》
整体二分 Solve(x,y,S)表示处理答案在[x,y]区间内的询问集合S
预先将所有数按照大小排序 每次将[1,mid]之间的数插入树状数组
然后对于分治内部的每一个...
分类:
编程语言 时间:
2014-12-30 15:24:28
阅读次数:
275
一道比较水的二维树状数组,开100个即可,只有100种颜色还是比较EZ的。 1 Program BZOJ1452; 2 const maxn=308; 3 maxc=108; 4 var a:array[0..maxn,0..maxn,0..maxc] of longint; 5 ...
分类:
编程语言 时间:
2014-12-27 10:04:36
阅读次数:
174
二维树状数组应用
http://poj.org/problem?id=1195
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
int s;
int p[1030][10...
分类:
其他好文 时间:
2014-12-25 16:35:07
阅读次数:
190
MatrixTime Limit: 3000MSMemory Limit: 65536KTotal Submissions: 19174Accepted: 7207DescriptionGiven an N*N matrix A, whose elements are either 0 or 1. ...
分类:
编程语言 时间:
2014-12-05 01:56:06
阅读次数:
275
题目大意:有一些操作,给一个坐标代表的点加上一个数,和求出一个矩形中的所有数的和。
思路:一眼题,二位树状数组水过。
。。。
。。
。
哪里不对?W
这个时候CDQ神牛又来帮助我们了。
这个题应该算是CDQ分治的模板题了吧,简单分析一下,其实不难。
写这个题之前建议写一下BZOJ 1935 SHOI 2007 Tree 园丁的烦恼 树状数组这个题,是本题的简化版。
按照正...
分类:
其他好文 时间:
2014-12-04 20:07:27
阅读次数:
188
题目大意:带修改、强制在线的区间逆序对
将之前3744TLE了的某个做法重写了一发 把其中一些预处理改成了树状数组 不得不说树状数组常数还是小啊
令g[i][j](i
equals[i][j]表示前i块之内j的数量 这个直接暴力即可
smaller[i][j]表示前i块之内小于等于j的数的数量 第一维暴力第二维树状数组
修改时都维护一遍 查询时 首先我们把区间分为三块
令A为左侧零碎部...
分类:
编程语言 时间:
2014-12-03 19:22:10
阅读次数:
230