树状数组
ssllyr
锦瑟无端五十弦,一弦一柱思华年。
展开
-
【HDU1540】Tunnel Warfare【树状数组】
一看跟区间有关,线段树应该可以做,但是不想写线段树,于是考虑树状数组行不行。因为这个前面后面都要考虑,所以就用两个树状数组。在一次摧毁之后,直接通过更新这个位置到以后的贡献,前缀和之后后面的全都会改变,修复时同理,记录摧毁顺序用个stack就可以。原创 2023-08-21 15:37:50 · 69 阅读 · 0 评论 -
【poj1195】手机【树状数组】
一眼二维树状数组,维护单点修改矩阵求和。其实还有区间修改区间求和and矩阵修改矩阵求和。那几种的处理方法是维护多个数组,记录不同量的出现次数。原创 2023-08-15 11:35:46 · 53 阅读 · 0 评论 -
【洛谷P1966】火柴排队【树状数组,离散化,思维】
离散化,逆序对,思维原创 2022-08-24 11:05:25 · 139 阅读 · 0 评论 -
【洛谷P1486】郁闷的出纳员【树状数组】
树状数组原创 2022-08-19 07:54:19 · 106 阅读 · 0 评论 -
【专题复习】树状数组
树状数组原创 2022-08-18 21:51:52 · 151 阅读 · 0 评论 -
【8.16模拟赛.7232】【洛谷P7416】[USACO21FEB] No Time to Dry P【树状数组】【单调栈】
题目链接:https://www.luogu.com.cn/problem/P7416分析上代码#include<iostream>#include<cstdio>#include<algorithm>#include<vector>#include<cmath>#define re registerusing namespace std;vector <pair<int,int> > e[2000.原创 2021-08-18 14:55:39 · 90 阅读 · 0 评论 -
【8.14模拟赛.7220】【洛谷P7527】[USACO21OPEN] United Cows of Farmer John G【树状数组】
题目链接:gmoj,洛谷分析上代码#include<iostream>#include<cstdio>#include<algorithm>using namespace std;typedef long long ll;ll n,ans;ll a[400001],f[400001],c[400001];int lowbit(int x){ return x&(-x);}void add(int x,int y){ for.原创 2021-08-15 19:44:52 · 103 阅读 · 0 评论 -
【ybtoj 4.2 树状数组课堂过关】F. 矩阵修改矩阵查询
题目链接:矩阵修改矩阵查询分析又是矩阵修改,参照D题,可以使用二维差分。后面维护出现次数中出现的四个情况即可。上代码#include<iostream>#include<cstdio>#include<algorithm>using namespace std;typedef long long ll;int n,m;ll c[3001][3001],c1[3001][3001],c2[3001][3001],c3[3001][3001];i.原创 2021-07-29 17:12:30 · 174 阅读 · 0 评论 -
【ybtoj 4.2 树状数组课堂过关】E.单点修改矩阵查询
题目链接:单点修改矩阵查询分析模板题,二维树状数组维护前缀和(与二维前缀和一样)。单点修改就分别从(x,y)枚举到(1,1)。上代码#include<iostream>#include<cstdio>#include<algorithm>using namespace std;typedef long long ll;int n,m;ll c[5001][5001];int lowbit(int x){return x&(-x);}.原创 2021-07-29 17:09:00 · 163 阅读 · 0 评论 -
【ybtoj 4.2 树状数组课堂过关】D.区间修改区间查询
题目链接:区间修改区间查询分析上代码#include<iostream>#include<cstdio>#include<algorithm>using namespace std;typedef long long ll;int n,q;ll c[1000001],c1[1000001];int lowbit(int x){return x&(-x);}void update(ll x,ll y){ for(int i=x;..原创 2021-07-29 17:04:55 · 58 阅读 · 0 评论 -
【ybtoj 4.2 树状数组课堂过关】C.严格上升子序列数
题目链接:严格上升子序列数分析普通的DP:设di,jd_{i,j}di,j为以第iii个数结尾,长度为jjj的严格上升子序列个数。转移显然。时间复杂度O(Tn2m)O(Tn^2m)O(Tn2m)不能通过。优化:将数组离散化,建立m个树状数组维护长度为1~m的方案数。复杂度O(Tnm∗logn)O(Tnm*logn)O(Tnm∗logn)上代码#include<iostream>#include<cstdio>#include<algorithm>#.原创 2021-07-29 17:01:04 · 87 阅读 · 0 评论 -
【ybtoj 4.2 树状数组课堂过关】B.逆序对【树状数组+离散化】
题目链接:逆序对分析暴力的算法是O(n2)O(n^2)O(n2)的。因为范围比较大,所以要将数组离散化先。每次在树状数组下标为a[i]的位置+1,然后统计下标大于a[i]的区间的个数。上代码#include<iostream>#include<cstdio>#include<algorithm>using namespace std;typedef long long ll;struct lwx{ int s,p;}a[500005];.原创 2021-07-29 16:53:40 · 89 阅读 · 0 评论 -
【ybtoj 4.2 树状数组课堂过关】A.单点修改区间查询
题目链接:单点修改区间查询分析树状数组模板。区间查询只要像前缀和查询区间一样。上代码#include<iostream>#include<cstdio>#include<algorithm>using namespace std;typedef long long ll;ll n,q,a[1000001],c[1000001];int lowbit(int x){ return x&(-x);}void update(int ..原创 2021-07-29 16:48:41 · 61 阅读 · 0 评论 -
【CF261D】 Maxim and Increasing Subsequence【树状数组】
题意给你一个长度为n的B数组,A表示B数组复制t遍后首尾相连后的数组,求A的最长上升子序列 有k组询问 ,maxb表示B数组中最大的数原题&样例分析观察样例与数据可以知道,当t>=sum时,答案就是sum,其中sum为序列中不同数字的个数,因为是严格单调的。那么,我们只考虑t<sum的情况。我们发现n∗maxb≤2∗107的,我们可以发现,这种情况下序列长度就是≤2*107,因为sum一定小于maxb。然后dp,找最大值用树状数组。复杂度还是很恐怖的。在代码里面玄学优化就差不多了。原创 2020-08-19 09:21:59 · 103 阅读 · 0 评论 -
【poj3321】Apple Tree【树状数组】
描述卡卡家门外有一棵苹果树。每年秋天,树上都会种很多苹果。卡卡非常喜欢苹果,因此他一直在精心培育大苹果树。该树有N个分支,这些分支由分支连接。Kaka用1到N对叉进行编号,并且根始终用1编号。在叉上将生长苹果,而在同一叉上将不会生长两个苹果。卡卡想了解子树中有多少苹果,以便研究苹果树的生产能力。问题在于,有时空叉上会长出一个新苹果,卡卡可能会从树上摘下一个苹果作为甜点。你能帮卡卡吗?输入第一行包含一个整数Ñ(Ñ ≤100,000),这是树中的叉的数量。接下来的N -1行分别包含两个整数u和v,原创 2020-08-19 08:49:06 · 811 阅读 · 0 评论 -
【ssl1502】校门外的树(加强版)【树状数组】
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 42 3原创 2020-08-19 08:27:29 · 233 阅读 · 1 评论 -
【ural1028】star(数星星)【树状数组】
问题描述天空中有一些星星,这些星星都在不同的位置,每个星星有个坐标。如果一个星星的左下方(包含正左和正下)有k颗星星,就说这颗星星是k级的。 给定星星的位置,输出各级星星的数目。 给定n个点,定义每个点的等级是在该点左下方(含相等)的点的数目,试统计每个等级有多少个点。(n<=15000,0<=x,y<=32000)分析这题就是树状数组的模板题。模板大概分三个部分:lowbit单点修改函数查询前缀和函数只要在ans数组里面每次查询前缀和统计就可以。上代码原创 2020-08-19 07:44:37 · 288 阅读 · 1 评论