树状数组
文章平均质量分 72
树状数组及其应用
睡神...
一切伟大的思想,都有一个微不足道的开始。。。
展开
-
SuperBrother打鼹鼠
Vijos/ Vijos / 题库 /SuperBrother打鼹鼠这是一道二维树状数组的裸题目#include <bits/stdc++.h>using namespace std;int n,m;int c[1026][1026];int lowbit(int x){ return x&(-x);}void update(int x,int y,int z)//将(x,y)的值+z{ for(int i=x;i<=n;i+=lowbit(i))原创 2021-03-30 21:21:59 · 177 阅读 · 0 评论 -
校门外的树:持续打板子
校门外的树传送门又是一道树状数组经典题目分析:首先这道题,你有可能想到的是区间打标记,似乎跟树状数组扯不到一点关系。但我们需要建模。题目说在[l,r][l,r][l,r]这个区间里种植一棵树,那么可以这样理解:就是在l,rl,rl,r这两个点上打上一个标记。怎样体现是这个区间呢?我们就用一对(),当然你用0和1也行。打上标记后,我们来看:rrr左边(前边)的左括号((( 代表从开头到rrr的树种类数;lll左边的右括号))) 代表从开头到lll种了多少棵树。具体情况见下图:我们可以发现l原创 2021-03-28 16:40:23 · 131 阅读 · 0 评论 -
重拾树状数组
树状数组(本文会详细介绍树状数组,萌新也可以轻松看懂)引言在做题过程中,我们有时会要维护这样一个前缀和数组:Sum[i]=a[1]+a[2]+a[3]+.......+a[i]Sum[i]=a[1]+a[2]+a[3]+.......+a[i]Sum[i]=a[1]+a[2]+a[3]+.......+a[i]不难发现,如果我们修改了其中一个a[x]a[x]a[x]的值,那么Sum[i]的值会随之改变;如果我们修改了其中一个a[i]a[i]a[i]的值,那么Sum[i]+Sum[i+1]....原创 2021-03-24 18:45:03 · 111 阅读 · 0 评论 -
火柴排队:离散化&逆序对
A : 1 3 4 2code: 1# 3# 4# 2#//这里code表示的是排名,例如1是最小的排第一位,所以是1#;2是第二小的排第二位,所以是2#原创 2021-01-17 15:58:53 · 193 阅读 · 2 评论 -
POJ 2353 stars:一维树状数组
一维树状数组POJ 2353 stars 题址 记住一句话:在我左边的,且高度小于等于我的星星的数量就是我的 level主要任务是统计一颗星星的左下方的星星数量因为数据是按照y坐标递增顺序排列的,所以y坐标已经没有用了。所以一维树状数组就可以搞定了。下面直接贴代码:#include <bits/stdc++.h>using namespace std;const int MAXV=32010;int c[MAXV];int star[15005];int i,t,n,原创 2020-06-27 15:07:28 · 166 阅读 · 0 评论