发个ZKW线段树板子测试一下代码高亮
先安利
Wolves 歌手:Madilyn Bailey
代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#include<bits/stdc++.h>
#define MAXN 500005
using namespace std;
int read(){
int x=0,t=1; char c= getchar ();
while (c< '0' ||c> '9' ){ if (c== '-' )t=-1;c= getchar ();}
while (c>= '0' &&c<= '9' ){x=x*10+c- '0' ;c= getchar ();}
return x*t;
}
int N,M,T[MAXN*4],Q;
void Build_tree(){
for (M=1;M<N;M<<=1);
for ( int i=M+1;i<=M+N;i++)T[i]=read();
for ( int i=M-1;i;i--)T[i]=T[i<<1]+T[i<<1|1];
}
void Add( int x, int v){
for (T[x=M+x]+=v,x>>=1;x;x>>=1)
T[x]=T[x<<1]+T[x<<1|1];
}
long long Query( int l, int r){
long long sum=0;
for (l=l+M-1,r=r+M+1;l^r^1;l>>=1,r>>=1){
if (~l&1)sum+=T[l^1];
if ( r&1)sum+=T[r^1];
} return sum;
}
int main(){
N=read(),Q=read();
Build_tree();
while (Q--){
int a=read(),b=read(),c=read();
if (a==1)Add(b,c);
else printf ( "%lld\n" ,Query(b,c));
}
return 0;
}
|
转载于:https://www.cnblogs.com/Elfish/p/8371132.html
发个ZKW线段树板子测试一下代码高亮相关推荐
- BZOJ3196 二逼平衡树 ZKW线段树套vector(滑稽)
我实在是不想再打一遍树状数组套替罪羊树了... 然后在普通平衡树瞎逛的时候找到了以前看过vector题解 于是我想:为啥不把平衡树换成vector呢??? 然后我又去学了一下ZKW线段树 就用ZKW线 ...
- 线段树和zkw线段树
作者作为一个蒟蒻,也是最近才自学了线段树,不对的地方欢迎大佬们评论,但是不要喷谢谢 好啦,我们就开始说说线段树吧 线段树是个支持区间操作和查询的东东,平时的话还是蛮实用的 下面以最基本的区间加以及查询 ...
- 线段树简单入门 (含普通线段树, zkw线段树, 主席树)
线段树简单入门 递归版线段树 线段树的定义 线段树, 顾名思义, 就是每个节点表示一个区间. 线段树通常维护一些区间的值, 例如区间和. 比如, 上图 \([2, 5]\) 区间的和, 为以下区间的和 ...
- 几个线段树板子(区间加/区间加与乘)
一直仰慕dl能够把线段树玩出花来,所以就想手写并整理一下几个常见的线段树板子(主要是结构化得好看一些) Part Ⅰ区间加法+区间求和 洛谷P3372 基础中的基础 //luogu P3372 199 ...
- 线段树板子(区间修改)
测试题目:P3372 [模板]线段树 1 https://www.luogu.org/problemnew/show/P3372 #include<cstdio> #include< ...
- Acwing 4339 敌兵布阵 暴力 + 分块 + 线段树 + Zkw线段树 + 树状数组
来一篇超全题解 数据结构大杂烩 原题连接 题目描述 敌人有 NNN 个工兵营地,编号 1∼N1∼N1∼N. 初始时,第 iii 个营地有 aia_iai 个人. 接下来有若干个命令,命令有 444 ...
- [CF1603D] Artistic Partition——欧拉函数,线段树优化DP
[CF1603D] Artistic Partition 题解 问题其实就是要你把 1 ∼ n 1\sim n 1∼n 分成 k k k 段,最小化每一段的 c c c 值的和. 首先我们会想到,如果 ...
- POJ3264[线段树]
就是说有一个序列长度为n,q次询问,询问区间内最大值与最小值的差 可以说是经典的线段树板子题.. 第一次写线段树,有些漏洞请大家及时提出. 线段树大概就是将元素分配,蒟蒻语文不好,大家请看图 [图片来 ...
- Luogu P2982 [USACO10FEB]慢下来 Slowing down | dfs序、线段树
题目链接 题目大意: 有一棵N个结点树和N头奶牛,一开始所有奶牛都在一号结点,奶牛们将按从编号1到编号N的顺序依次前往自己的目的地,求每头奶牛在去往自己目的地的途中将会经过多少已经有奶牛的结点. 题解 ...
最新文章
- SAP MM 如何查询物料凭证号是由哪个IDoc Post后产生的?
- 图像传感器与信号处理——详解CCD与CMOS图像传感器
- NYOJ 257 郁闷的C小加(一)
- Delphi连接AutoCAD_计算任意线条的长度宏的嵌套
- Nginx服务的信号控制
- SpringMVC拦截器工作流程图
- css 字体倾斜_css笔记3(文本,列表,背景声明)
- python循环次数查询_大数据量Mysql查询后经过循环使用python分片
- 联想记忆计算机网络,联想记忆网络,associative memory network,音标,读音,翻译,英文例句,英语词典...
- [转载] Python3 String模块ascii_letters和digits
- TCP三次握手四次挥手介绍
- php css类,css class是啥
- 【STM32训练—SIM900A模块】第一篇、电脑的串口助手驱动SIM900A发送中文和英文短信
- 新浪微博开发者平台应用申请及配置说明
- Linux下确认CPU是否开启超线程
- Win7系统打印机不能打印的问题
- NNDL 作业3:分别使用numpy和pytorch实现FNN例题
- 亚马逊CPSC认证常见产品测试标准合集
- as转html5工具,Flash资源转换工具
- layui框架的简单使用