public class LineTree{
int[] tree,nums;
int n;
public LineTree(int[] nums){
this.nums = nums;
n = nums.length;
tree = new int[n*4];
build(0, 0, n-1);
} // 建立线段树
private void build(int node, int left, int right){
if(left == right){
tree[node] = nums[left];
}
int mid = left + ((left + right)>> 1);
build(2*node + 1, left, mid);
build(2*node + 2, mid + 1, right);
tree[node] = tree[2*node + 1] + tree[2*node + 2];
} // 更新线段树
public void update(int node, int left, int right, int idx, int val){
if(left > right) return;
else if(left == right){
nums[left] = val;
tree[node] = val;
}else{
int mid = left + ((left + right)>> 1);
if(idx >= left && idx <= mid)
update(node * 2 + 1, left, mid, idx, val);
else
update(node * 2 + 2, mid + 1, right, idx, val);
tree[node] = tree[node*2 + 1] + tree[node*2 + 2];
}
} // 查询线段树
public int query(int node, int left, int right, int L, int R){
if(right < L || left > R) return 0;
else if(left == right) return tree[node];
else if(L<= left && R >= right)return tree[node];
else{
int mid = left + ((right - left) >> 1);
return query(node*2+1, left, mid,L,R) + query(node*2+2, mid+1, right, L, R);
}
}
}

JAVA线段树模板的更多相关文章

  1. 线段树模板hdu 1754:I Hate It

    I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  2. HDU1166:敌兵布阵(线段树模板)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  3. 线段树模板 hdu 1166 敌兵布阵

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  4. [AHOI 2009] 维护序列(线段树模板题)

    1798: [Ahoi2009]Seq 维护序列seq Time Limit: 30 Sec  Memory Limit: 64 MB Description 老师交给小可可一个维护数列的任务,现在小 ...

  5. hdu1754 I hate it线段树模板 区间最值查询

    题目链接:这道题是线段树,树状数组最基础的问题 两种分类方式:按照更新对象和查询对象 单点更新,区间查询; 区间更新,单点查询; 按照整体维护的对象: 维护前缀和; 维护区间最值. 线段树模板代码 # ...

  6. P3373 线段树模板

    好,这是一个线段树模板. #include <cstdio> using namespace std; ; long long int sum[N],tag1[N],tag2[N],mo; ...

  7. UESTC - 1057 秋实大哥与花 线段树模板题

    http://acm.uestc.edu.cn/#/problem/show/1057 题意:给你n个数,q次操作,每次在l,r上加上x并输出此区间的sum 题解:线段树模板, #define _CR ...

  8. POJ 3468 A Simple Problem with Integers(线段树模板之区间增减更新 区间求和查询)

    A Simple Problem with Integers Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 140120 ...

  9. hdu 4819 二维线段树模板

    /* HDU 4819 Mosaic 题意:查询某个矩形内的最大最小值, 修改矩形内某点的值为该矩形(Mi+MA)/2; 二维线段树模板: 区间最值,单点更新. */ #include<bits ...

  10. POJ3468:A Simple Problem with Integers(线段树模板)

    A Simple Problem with Integers Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 149972 ...

随机推荐

  1. xcode运行sh权限问题

    Showing Recent Messages Command /bin/sh emitted errors but did not return a nonzero exit code to ind ...

  2. 【MySQL】MySQL8安装

    1. MySQL8安装 安装环境 操作系统:CentOS7 MySQL版本:8.0.28 安装方式:二进制Generic 软件路径:/app/database 数据路径:/data/3306 日志路径 ...

  3. 04-Sed操作参数

    1 Sed操作参数 1.1 s--替换 s表示替换(substitute)文件内的字符串. [address1],[address2]s/pattern/replacement/[flag] # s/ ...

  4. 基于 VScode 搭建 Verilog 自动格式化

    插件 Verilog-HDL/SystemVerilog/Bluespec SystemVerilog SystemVerilog and Verilog Formatter 工具 https://g ...

  5. angular--连接服务获取数据并展示到页面加载结束禁用按钮-分页加载-管道使用

  6. drf-day7——认证组件、权限组件、频率组件、过滤排序、分页

    目录 一.认证组件 1.1 登录接口 1.2 认证组件使用步骤 1.3 整体代码 1.4认证时cookie的获取方式 二.权限组件 2.1需求分析: 2.2 权限的使用 2.3代码 三.频率组件 3. ...

  7. 真正“搞”懂HTTP协议11之代理服务

    代理,其实全称应该叫做代理服务器,它是客户端与服务器之间得中间层,本质上来说代理就是一个服务器,在HTTP的链路中插入的一个中间环节,就是代理服务器啦.所谓的代理服务就是指:服务本身不生产内容,而是处 ...

  8. React Refs-知识点整理记录

    一.Refs的作用 通过Refs,可以访问到 1. DOM节点. 2. render方法中创建的React元素.(class组件的实例) 二.访问节点或者实例有什么用?为什么要使用Refs来访问? 访 ...

  9. php上传微信素材

    private function HttpsUpdateFileServerRequest($url,$path_img){ $curl = curl_init (); if (class_exist ...

  10. python学习第八周总结

    多进程实现TCP服务端并发 之前我们学习了用socket模块进行文字以及文件的传输,但是之前的操作一个服务端只能与一个客户端进行交互,如果要想实现多个客户端与服务端交互的并发效果,我们需要进行如下操作 ...