![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
树状数组
# 树状数组
SSL_LKJ
蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名
展开
-
区间修改区间查询(树状数组)
区间修改区间查询解题思路二维差分+区间查询AC代码#include<cstdio>using namespace std;int n,m;long long c[4][5005][5005];int lowbit(int x){ return x&(-x);}void update(int x,int y,long long k)//存储{ for(int i=x;i<=n;i+=lowbit(i)) for(int j=y;j<=m;j+=原创 2021-06-13 09:27:52 · 81 阅读 · 0 评论 -
单点修改区间查询(树状数组)
单点修改区间查询解题思路就是典型的二维树状数组用二维前缀和求答案AC代码#include<cstdio>using namespace std;int n,m;long long c[5005][5005];int lowbit(int x){ return x&(-x);}void update(int x,int y,long long k)//存储{ for(int i=x;i<=n;i+=lowbit(i)) for(int j=y;j&原创 2021-06-13 08:30:57 · 133 阅读 · 0 评论 -
P3372 【模板】线段树 1(区间修改区间查询)(树状数组)
P3372 【模板】线段树 1(区间修改区间查询)题目传送门解题思路这题除了用线段树做还可以用树状数组做主要就是利用二维树状数组进行维护AC代码#include<cstdio>using namespace std;int n,T;long long c[3][1000005];int lowbit(int x){ return x&(-x);}void update(int x,long long y)//存储{ int xx=x; for(;x原创 2021-06-12 16:46:23 · 112 阅读 · 0 评论 -
严格上升子序列数(树状数组)(离散化优化)
严格上升子序列数解题思路这题跟P1908 逆序对(树状数组)(离散化优化)有异曲同工之妙可推出式子(设f(i,j)表示以第i个数结尾、长度为j的严格上升子序列数)当然当j=1时结果为1再用离散化优化AC代码#include<algorithm>#include<cstring>#include<cstdio>long long n,m,a[1005],b[1005],c[1005][1005],f[1005][1005];using name原创 2021-06-12 15:17:27 · 913 阅读 · 0 评论 -
P1908 逆序对(树状数组)(离散化优化)
逆序对题目传送门解题思路我们考虑看对于每个位置有多少个在它前面的数比它大(每存在这么一个数,它就可以和你这个数组成一个逆序对)用树状数组做(离散化优化)只需要存那个数在数组中是第几大就好了AC代码#include<algorithm>#include<cstdio>using namespace std;long long n,ans,a[500005],b[500005],c[500005];long long lowbit(long long x){原创 2021-06-08 16:12:31 · 141 阅读 · 0 评论 -
P3374 【模板】树状数组 1(单点修改区间查询)(树状数组)
单点修改区间查询题目传送门解题思路树状数组的模板题AC代码#include<cstdio>using namespace std;long long n,m,c[1000005];long long lowbit(long long x)//lowbit{ return x&-x;}void update(long long x,long long y)//修改{ for(long long i=x;i<=n;i+=lowbit(i))c[i]+=y原创 2021-06-03 16:46:43 · 138 阅读 · 0 评论 -
CF261D Maxim and Increasing Subsequence(树状数组)
CF261D Maxim and Increasing Subsequence题目传送门题目大意给你一个长度为n的B数组,A表示B数组复制ttt遍后首尾相连后的数组,求A的最长上升子序列 有k组询问 maxb表示B数组中最大的数题目分析观察样例与数据可以知道,当t>=sum时,答案就是sum,其中sum为序列中不同数字的个数,因为是严格单调的。sum一定小于maxb。dp,找最大值用树状数组AC代码#include<iostream>#include<cstrin原创 2020-08-19 08:17:19 · 240 阅读 · 1 评论 -
【POJ.3321】Apple Tree(树状数组)
Apple TreeDescriptionThere is an apple tree outside of kaka’s house. Every autumn, a lot of apples will grow in the tree. Kaka likes apple very much, so he has been carefully nurturing the big apple tree.The tree has N forks which are connected by branc原创 2020-08-18 16:56:48 · 1202 阅读 · 2 评论 -
校门外的树(树状数组)
校门外的树Description校门外有很多树,有苹果树,香蕉树,有会扔石头的,有可以吃掉补充体力的……如今学校决定在某个时刻在某一段种上一种树,保证任一时刻不会出现两段相同种类的树,现有两个操作:K=1,读入l,r表示在l~r之间种上的一种树K=2,读入l,r表示询问l~r之间能见到多少种树(l,r>0)Input第一行n,m表示道路总长为n,共有m个操作接下来m行为m个操作Output对于每个k=2输出一个答案Sample Input5 41 1 32 2 51 2原创 2020-08-18 11:06:41 · 577 阅读 · 1 评论 -
【一本通.1536】数星星 Stars(树状数组)
数星星 Stars题目传送门【题目描述】原题来自:Ural 1028天空中有一些星星,这些星星都在不同的位置,每个星星有个坐标。如果一个星星的左下方(包含正左和正下)有 k颗星星,就说这颗星星是 k级的。例如,上图中星星 5是 3 级的(1,2,4 在它左下),星星 2,4 是 1 级的。例图中有 1 个 0 级,2 个 1 级,1 个 2 级,1 个 3级的星星。给定星星的位置,输出各级星星的数目。一句话题意:给定 n个点,定义每个点的等级是在该点左下方(含正左、正下)的点的数目,试原创 2020-08-17 20:47:20 · 2143 阅读 · 1 评论