int bit[maxn],n;
void init()
{n = maxn;memset(bit,0,sizeof(bit));
}
int sum(int i)
{int s = 0;while(i>0){s += bit[i];i -= i&-i;}return s;
}void add(int i,int x)
{while(i <= n){bit[i] += x;i += i&-i;}
}

树状数组

int d[1000006][25];
int mn[1000006];
void rmq_init()
{for(int i=1;i<=n;i++)d[i][0]=a[i];for(int j=1;(1<<j)<=n;j++)for(int i=1;i+(1<<j)-1<=n;i++)d[i][j]=min(d[i][j-1],d[i+(1<<(j-1))][j-1]);for(int len=1;len<=n;++len){int k=0;while((1<<(k+1))<=len)k++;mn[len]=k;}
}
int rmq(int L,int R)
{int k=mn[R-L+1];return min(d[L][k],d[R-(1<<k)+1][k]);
}

ST表

const int maxn = 504;int d[maxn][maxn];
int n;
void init()
{n = maxn;memset(d,0,sizeof(d));
}
void update(int x,const int&y,const int&V)
{for(;x<=n;x+=(x&(-x)))for(int j = y;j <= n;j += (j&(-j)))d[x][j]+=V;
}
int getsum(int x,const int &y)
{int res = 0;for(;x;x -= x&(-x))for(int j = y;j;j-=j&(-j))res += d[x][j];return res;
}

二维树状数组

const int maxn = 1 << 18;int n, dat[2*maxn];void init()
{n = (1 << 18)-2;memset(dat,0,sizeof(dat));
}//更新第k(0-index)个值为a
void update(int k,int a)
{k += n+1;dat[k] = a;while(k>0){k = (k-1)/2;dat[k] = dat[k*2+1]+dat[k*2+2];}
}//求[a,b)val
//query(a,b,0,0,n)
int query(int a,int b,int k,int l,int r)
{//不相交if(r<a || b<l) return 0;if(a<=l && r<=b) {return dat[k];}else{int vl = query(a,b,k*2+1,l,(l+r)/2);int vr = query(a,b,k*2+2,(l+r)/2+1,r);return vl+vr;}return -1;//error
}

线段树(单点更新区间查询)

int data[maxn<<2],datb[maxn<<2];
int n;
void init()
{n = maxn;memset(data,0,sizeof(data));memset(datb,0,sizeof(datb));
}
//对[a,b)加x
//add(a,b,x,0,0,n)
void add(int a,int b,int x,int k,int l,int r)
{if(a<=l && r<=b){data[k] += x;}else if(l < b && a < r){datb[k] += (min(b,r) - max(a,l)) * x;add(a,b,x,k*2+1,l,(l+r)/2);add(a,b,x,k*2+2,(l+r)/2,r);}
}//sum(a,b,0,0,n)
int sum(int a,int b,int k,int l,int r)
{if(b<=l || r<=a){return 0;} else if(a <= l && r <= b){return data[k] * (r-l)+datb[k];}else{int res = (min(b,r) - max(a,l)) * data[k];res += sum(a,b,k*2+1,l,(l+r)/2);res += sum(a,b,k*2+2,(l+r)/2,r);return res;}
}

线段树(区间更新区间查询)

ST表的板子是抄的:https://www.cnblogs.com/autsky-jadek/p/7327416.html

转载于:https://www.cnblogs.com/Asurudo/p/10658452.html

ACM模板——线段树树状数组ST表相关推荐

  1. bzoj5308[Zjoi2018]胖(线段树,二分,st表)

    Description Cedyks是九条可怜的好朋友(可能这场比赛公开以后就不是了),也是这题的主人公. Cedyks是一个富有的男孩子.他住在著名的ThePLace(宫殿)中. Cedyks是一个 ...

  2. ACM模板 | 学习笔记 树相关

    持续更新中qwq 咕咕咕 此次update是在我原先自己的博客园博客的基础上进行更新的(隔了两年该忘的不该忘的都忘完了qwq),顺便整理一下我的acm模板QAQ (我保证2021.3.1开学之前搞完! ...

  3. 后缀数组 ---- 2018~2019icpc焦作H题[后缀数组+st表+二分+单调栈]

    题目链接 题目大意: 给出nnn个数,定义f[l,r]f[l,r]f[l,r]表示 区间[l,r][l,r][l,r]的最大值,求所有 子区间的最大值的和,要求相同的子区间只能算一次 比如数列 5 6 ...

  4. [luoguP2463] [SDOI2008]Sandy的卡片(后缀数组 + st表)

    传送门 很容易想到,题目中的相同是指差分数组相同. 那么可以把差分数组连起来,中间加上一个没有出现过的且字典序小的数 双指针移动,用st表维护height数组中的最小值. 当然用单调队列应该也可以且更 ...

  5. 【BZOJ4310】跳蚤,后缀数组+ST表求LCP+二分答案

    Time:2016.05.26 Author:xiaoyimi 转载注明出处谢谢 传送门 思路: 首先要求出不同子串的个数 有这样一个性质 一个串中不同子串的总数=∑(len-height[i]-sa ...

  6. 树状数组(求逆序对)

    一.树状数组是什么 树状数组,又称二进制索引树,英文名Binary Indexed Tree 之前遇到一个求逆序对的题,看了很多题解都只说了这个树状数组,关于怎么实现的全都避而不谈,我研究了一下午,总 ...

  7. [51nod] 1766树上的最远点对 树的直径 树剖LCA+ST表静态查询

    题意: 给你一棵带权树,q次查询,每次给出两个区间,[l1,r1][l2,r2][l_1,r_1] [l_2,r_2][l1​,r1​][l2​,r2​]从这两个区间中分别选择两个数字,使得这两个点的 ...

  8. 【JZOJ5064】【GDOI2017第二轮模拟day2】友好城市 Kosarajo算法+bitset+ST表+分块

    题面 在Byteland 一共有n 座城市,编号依次为1 到n,这些城市之间通过m 条单向公路连接. 对于两座不同的城市a 和b,如果a 能通过这些单向道路直接或间接到达b,且b 也能如此到达a,那么 ...

  9. 【cogs2711】jump,二分答案+倍增套ST表

    传送门 思路: 好久没写题解了来爽一发 还是比较有意思的一道题目 首先想到二分答案x,我们枚举每一个点i,点i在x步内所能到达的点显然能形成一个区间[L i ,R i ] [L_i,R_i],那么[1 ...

最新文章

  1. c# out ref
  2. javaweb学习总结(七)——HttpServletResponse对象(一)
  3. python章节总结_《Python深度学习》第一章总结
  4. 03_ClickHouse数据格式,TabSeparated、TSKV、CSV格式、JSON格式、Parquet、ORC、其它数据格式(Native,Pretty,Values,Vertical等)
  5. spark.mllib:bagging方法
  6. SharePoint 2010 文档管理系列
  7. Pycharm快速入门(5) — Python解释器和环境配置
  8. 毕业设计 基于大数据的社交平台数据爬虫舆情分析可视化系统
  9. xml--json代码大全
  10. 二维向量叉积的几何意义
  11. php文章排序,php实现的常见排序算法汇总
  12. 物联网应用网站数据库设计
  13. FPGA-DDR总线电源硬件设计技巧-Fly-by走线阻抗
  14. 【引路帖】【MATLAB】【求解最优化问题】
  15. java吃水果小游戏中水果,蔬菜等的重画
  16. 跑跑卡丁车辅助[免费辅助]跑跑卡丁车手游挂机自动日常肝图刷车刷道具
  17. LED背光源运用在温控设备上
  18. C语言程序设计(第4版)谭浩强著—学习笔记chapter one 程序设计与C语言
  19. 试用微软 必应输入法 功能简洁
  20. 【红日靶场系列】ATTCK红队评估3

热门文章

  1. 前端aes加密_前端安全攻防解析
  2. 服务器中W3SVC1文件夹的文件,完美解决IIS 服务器无法加载应用程序 '/LM/W3SVC/1/ROOT'。错误是 '没有注册类别...
  3. windows 2003 server右键菜单没有共享选项的解决办法
  4. python更改文件路径 unable_python 安装无效:无法打开/usr/lib/python2. 7/config/Makefile ( 没有此类文件或者目录)...
  5. c语言static知识点,C语言知识点集锦
  6. PhysioToolkit 软件目录
  7. 扬州大学广陵学院c语言试卷,扬州大学广陵学院交直流调速复习题答案(试卷)
  8. 如何读出烧录程序.bin的数据_如何改变程序搜索数据的方式?使用Redis进行搜索...
  9. 雷丰阳spring系列的笔记_怒肝8个月源码,我成为了 Spring 开源贡献者
  10. MySQL 基数的定义