随笔分类 -  树状数组

摘要:操作 1 :把某个节点 x 的点权增加 a 。操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 a 。操作 3 :询问某个节点 x 到根的路径中所有点的点权和。 //点修改+树修改,(点->根)链查询 #include<bits/stdc++.h> #define ll long long 阅读全文
posted @ 2022-11-22 09:57 心悟&&星际 阅读(16) 评论(0) 推荐(0) 编辑
摘要:dfs序前置知识:线段树,树状数组,LCA,树的存储,树的基础问题类型1.点修改,子树查询2.子树修改,点查询3.子树修改,子树查询4.链修改,点查询5.点修改,链查询6.链修改,子树查询7.子树修改,链查询(1-3)易,(4-5)中,(6-7)难 阅读全文
posted @ 2022-11-06 21:44 心悟&&星际 阅读(26) 评论(0) 推荐(0) 编辑
摘要:#include<iostream> #include<cstdio> using namespace std; const int Maxn=10000000; int tr[2*Maxn+10]; int lowbit(int x) { return x&(-x); } void add(int 阅读全文
posted @ 2022-03-17 23:17 心悟&&星际 阅读(27) 评论(0) 推荐(0) 编辑
摘要:P3368 【模板】树状数组 2由于差分数组的前缀和,为原数组的值,用树状数组去维护原数组的差分数组,区间[l,r]修改为t[l]+=delta,t[r+1]-=delta,单点s的查询变成区间[1-s]查询,变成求[1-s]的前缀和。 //P3368【模板】树状数组 2 //P3374 【模板】树 阅读全文
posted @ 2022-03-07 17:26 心悟&&星际 阅读(27) 评论(0) 推荐(0) 编辑
摘要:P1531 I Hate It区间最大值,区间查询最大值,单点更新,本解使用树状数组求解 #include <iostream> #include <cstdio> #include <cstdlib> using namespace std; const int MAXN = 3e5; int a 阅读全文
posted @ 2022-03-07 17:01 心悟&&星际 阅读(37) 评论(0) 推荐(0) 编辑
摘要:#include<bits/stdc++.h> using namespace std; const int Maxn=500010; long long a[Maxn]; int n; int lowbit(int x) { return x&(-x); } long long query(int 阅读全文
posted @ 2022-03-01 08:32 心悟&&星际 阅读(20) 评论(0) 推荐(0) 编辑
摘要:#include<iostream> using namespace std; const int Maxn=500010; int N,M; int a[Maxn]; int lowbit(int x) { return x&(-x); } void update(int x,int v) { w 阅读全文
posted @ 2022-03-01 08:31 心悟&&星际 阅读(15) 评论(0) 推荐(0) 编辑
摘要:前言树状数组,又称二叉索引树,是一种代码简单,应用广泛的神奇数据结构!普通树状数组概念普及:树状数组的原理 设黑色框内数组为A[1]→A[8]那么可以得到以下式子:C[1] = A[1];C[2] = A[1] + A[2];;C[3] = A[3];C[4] = A[1] + A[2] + A[3 阅读全文
posted @ 2022-03-01 07:19 心悟&&星际 阅读(39) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示