题目描述

这就是一个简单的树状数组入门题

可以动态地进行区间和查询

随时可能会进行更新

 

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<algorithm>
  4. #include<cmath>
  5. #include<string>
  6. #include<cstring>
  7. using namespace std;
  8. int C[];
  9. int n,m;
  10. int lowbit(int x){
  11. return x&(-x);
  12. }
  13. void add(int x,int d){
  14. while(x<=n){
  15. C[x]+=d;
  16. x+=lowbit(x);
  17. }//修改是从左往右
  18. }
  19. int sum(int x){
  20. int ret=;
  21. while(x>){
  22. ret+=C[x];
  23. x-=lowbit(x);//求和是从右往左
  24. }
  25. return ret;
  26. }
  27. int main()
  28. {
  29.  
  30. cin>>n>>m;
  31. for(int i=;i<=n;i++) {
  32. int x;
  33. cin>>x;
  34. add(i,x);
  35. }
  36. for(int i=;i<=m;i++){
  37. int k,a,b;
  38. cin>>k>>a>>b;
  39. if(k==)
  40. add(a,b);
  41. if(k==)
  42. cout<<sum(b)-sum(a-)<<endl;
  43. }
  44. return ;
  45. }

如果对树状数组的一些基础知识还不太了解

可以先看一下https://www.cnblogs.com/Tidoblogs/p/10887644.html

Tido 习题-二叉树-树状数组实现的更多相关文章

  1. Tido 习题-二叉树-树状数组求逆序对

    这里给大家提供一个全新的求逆序对的方法 是通过树状数组来实现的 题目描述   样例输入 Copy 5 2 3 1 5 4 样例输出 Copy 3 提示     #include<iostream ...

  2. 并查集&线段树&树状数组&排序二叉树

    超级无敌巨牛逼并查集(带权并查集)https://vjudge.net/problem/UVALive-4487 带删点的加权并查集 https://vjudge.net/problem/UVA-11 ...

  3. Tido c++树状数组知识讲解(转载)

    树状数组可以用来动态计算前缀和,可以随时进行更新 而普通的前缀和只是静态的         

  4. 【转载】区间信息的维护与查询(一)——二叉索引树(Fenwick树、树状数组)

    在网上找到一篇非常不错的树状数组的博客,拿来转载,原文地址. 树状数组 最新看了一下区间的查询与修改的知识,最主要看到的是树状数组(BIT),以前感觉好高大上的东西,其实也不过就这么简单而已. 我们有 ...

  5. hdu4605 magic ball game 树状数组+离线处理

    题意:给你一棵二叉树,每个节点有一个w值,现在有一颗小球,值为x,从根节点往下掉,如果w==x,那么它就会停止:如果w>x,那么它往左.右儿子的概率都是1.2:如果w<x,那么它往左儿子的 ...

  6. POJ3321 Apple Tree (树状数组)

    Apple Tree Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 16180   Accepted: 4836 Descr ...

  7. tyvj P1716 - 上帝造题的七分钟 二维树状数组区间查询及修改 二维线段树

    P1716 - 上帝造题的七分钟 From Riatre    Normal (OI)总时限:50s    内存限制:128MB    代码长度限制:64KB 背景 Background 裸体就意味着 ...

  8. hdu 4605-Magic Ball Game(树状数组)

    题目大意: 给你一棵二叉树,每个节点有一个w值,现在有一颗小球,值为x,从根节点往下掉,如果w==x,那么它就会停止:如果w>x,那么它往左.右儿子的概率都是1.2:如果w<x,那么它往左 ...

  9. hdu 6133---Army Formations(启发式合并+树状数组)

    题目链接 Problem Description > Stormtroopers were the assault/policing troops of the Galactic Empire. ...

随机推荐

  1. Objective-C block实现代码分析

    block内部结构 让我们写一个block void exampleBlock() { // NSConcreteStackBlock int a = 1; __block int b = 2; in ...

  2. Spring boot将配置属性注入到bean 专题

    https://blog.csdn.net/wangmx1993328/article/details/81002901 Error starting ApplicationContext. To d ...

  3. CMMI 能力成熟度模型集成

    关于CMMI的过程域,请参考 CMMI能力成熟度模型集成的过程区域 1.CMMI/SPCA概述 CMM是“能力成熟度模型(Capability Maturity Model)”的英文简写,该模型由美国 ...

  4. C#调用WebKit内核

    原文:C#调用WebKit内核 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u013564470/article/details/80255954 ...

  5. [转]完美解决)Tomcat启动提示At least one JAR was scanned for TLDs yet contained no TLDs

    一.文章前言    本文是亲测有效解决At least one JAR was scanned for TLDs yet contained no TLDs问题,绝对不是为了积分随便粘贴复制然后压根都 ...

  6. Android数组和开发List之间的转换

    1.List转换到一个数组.(这里List它是实体是ArrayList) 转让ArrayList的toArray方法. toArray public <T> T[] toArray(T[] ...

  7. aspnetboilerplate && .net core 使用原生sql

    利用aspnetboilerplate提供的工具类IDbContextProvider private readonly IDbContextProvider<XXXDbContext> ...

  8. C# WPF 中用代码模拟鼠标和键盘的操作

    原文:C# WPF 中用代码模拟鼠标和键盘的操作 原文地址 C#开发者都知道,在Winform开发中,SendKeys类提供的方法是很实用的.但是可惜的是,在WPF中不能使用这个方法了. 我们知道,在 ...

  9. C# WebClient的使用

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...

  10. php 二维数组相同值 相加

    array(3) { [0]=> array(2) { ["sourcesid"]=> int(1) ["addusernum"]=> str ...