树 - 树状数组
NotFound1
这个作者很懒,什么都没留下…
展开
-
|Vijos|树状数组|P1066 弱弱的战壕
https://vijos.org/p/1066 读入数据按x排序,然后按照y构造树状数组,因为排序后xii+1, 所以第i个战壕的保护个数一定是[1..yi]里 #include #include #include #define ms(i,j) memset(i, j, sizeof(i)); using namespace std; const int maxn = 15000 +原创 2016-08-23 12:26:27 · 396 阅读 · 0 评论 -
|Vijos|树状数组|P1512 SuperBrother打鼹鼠
https://vijos.org/p/1512 一个二维树状数组,注意树状数组不能出现0,把所有坐标+1即可,求子矩阵和为 sub(x2,y2) - sub(x1-1,y2) - sub(x2, y1-1) + sub(x1-1,y1-1) 其中sub为(1,1)到(x,y)矩阵的和。 #include #include #include #define ms(i,j) memset(i原创 2016-08-23 14:30:48 · 434 阅读 · 0 评论 -
|BZOJ 1452|树状数组|[JSOI2009]Count
BZOJ传送门 可以每一种颜色建一个二维树状数组,数据O(n2c)O(n^2c)的空间复杂度可以接受#include<cstdio> #include<cstring> #include<algorithm> #define ms(i,j) memset(i, j, sizeof i); using namespace std; int n,m,Q; int a[300 + 5][300 + 5]原创 2017-02-25 15:36:29 · 600 阅读 · 0 评论 -
|BZOJ 3211|树状数组|并查集|花神游历各国
BZOJ传送门 树状数组裸题,但是因为sqrt的速度很慢,所以我们在一个数为1或者为0就删掉它(用并查集维护) ps:交题时注意文件声明部分要注释掉!坑死了#include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<iostream> #define ms(i,j) memset(i, j, si原创 2017-02-25 17:09:27 · 564 阅读 · 0 评论 -
|算法讨论|树状数组 学习笔记
题目 [树状数组]BZOJ 1452:开多个树状数组解决问题 [树状数组, 并查集]BZOJ 3211:并查集辅助树状数组求值模板及讲解知识点: 1. 点修改,求x~y区间值 2. 区间修改,求某一点值 3. 二维树状数组 4. 离散化求逆序对1 点修改,求x~y区间值#include<cstdio> #include<algorithm> #include<cs原创 2017-03-11 16:41:15 · 355 阅读 · 0 评论 -
|poj 2763|LCA, 树状数组|或者|树链剖分, 线段树|Housewife Wind
poj 2763LCA+树状数组/线段树。首先本题大致一看就是一个LCA,但是本题有操作更改某边的权,这样会使得原本的far数组变化,不难发现,更改边权后影响该边下面所有点的答案。此时可以在LCA的DFS预处理时求出DFS序列(即时间戳),找到每个点管辖的范围,修改边权相当于修改该边连接的两个点深度深的那个点所管辖的范围,此时修改可以用暴力,但是由于far数组与LCA本身查询无关,我们可以用数据结构原创 2017-05-09 20:12:07 · 655 阅读 · 0 评论