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);
}
}
}

最新文章

  1. Collection和Collections的区别?
  2. bzoj 2527: [Poi2011]Meteors 整体二分
  3. Enum
  4. HBASE架构解析(二)
  5. OS X open finder here in terminal
  6. Spring4.0学习笔记(12) —— JDBCTemplate 操作数据库
  7. Linux JDK 的安装卸载
  8. 低版本eclipse导入高版本eclipse创建项目报错问题
  9. Java爬虫——B站弹幕爬取
  10. javascript:将URL的参数列表解析为一个对象
  11. Edusoho之LAMP环境搭建
  12. eclipse启动web应用
  13. Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 1)C. Morse Code
  14. 6J - 盐水的故事
  15. [字符串][NOIP2012]Vigen&#232;re密码
  16. Vue 父组件ajax异步更新数据,子组件props获取不到
  17. 042 将数据导入hive,将数据从hive导出
  18. c#不同数组之间的转换【转载,消化自动删除】
  19. Latex基本用法
  20. AndroidStudio配置LitePal

热门文章

  1. 饮料换购【第六届蓝桥杯省赛C++A/C组,第六届蓝桥杯省赛JAVAB组】
  2. 《Effective C++》设计与声明章节
  3. 请求量突增一下,系统有效QPS为何下降很多?
  4. Flutter帧率监控 | 由浅入深,详解获取帧率的那些事
  5. 基础分类算法_KNN算法
  6. 论文翻译:2022_PercepNet+: A Phase and SNR Aware PercepNet for Real-Time Speech Enhancement
  7. 分布式id的方案
  8. 线程基础知识11-CAS+自旋锁
  9. MySQL数据库报1055错误
  10. JS 格式化时间字符串