树状数组解决   (关于树状数组参考大佬的博客https://www.cnblogs.com/hsd-/p/6139376.html)

然后就很好理解这题了,代码附上

/*hdu 1166 单点修改,区间查询*/
#include <iostream>
#include <stdio.h>
#include <cstring>
#define MAX 50010
using namespace std;
int tree[MAX];
int arr[MAX];
int n;int lowbit(int x)
{return x&(-x);
}
//初始化树状数组
void init ()
{   tree[0] = 0;for (int i=1;i<=n;++i){tree[i]= 0;for (int j=i-lowbit(i)+1;j<=i;++j)tree[i]+=arr[j];}
}
//获取区间和
int get_sum(int x)
{int ans = 0;for (int i=x;i>0;i-=lowbit(i))ans+=tree[i];return ans;
}
//更新数据
int add(int x,int p)
{for (int i=x;i<=n;i+=lowbit(i))tree[i]+=p;
}int main ()
{char ch[10];int T = 0;int a,b;cin>>T;for (int k=1;k<=T;++k){   cin >> n;for (int i=1;i<=n;++i)scanf ("%d",&arr[i]);init();//更新 printf ("Case %d:\n",k);//开始查询等操作while(~scanf ("%s",ch)){  if (!strcmp("End",ch)) break;scanf ("%d%d",&a,&b);if (!strcmp("Query",ch))printf ("%d\n",get_sum(b)-get_sum(a-1));else if (!strcmp("Add",ch))add(a,b);else add(a,-b);} }return 0;
}
/*
1
10
1 2 3 4 5 6 7 8 9 10
Query 1 3
Add 3 6
Query 2 7
Sub 10 2
Add 6 3
Query 3 10
End
*/

转载于:https://www.cnblogs.com/yuluoluo/p/8664081.html

hdu 1166 树状数组解相关推荐

  1. HDU 4358 树状数组+思路

    http://acm.hdu.edu.cn/showproblem.php?pid=4358 如图所示,当k==3时,如果我们扫描到红线所在的位置. 则符合条件的区间就是从红线到两条紫线所包含的区间( ...

  2. hdu 4991(树状数组优化dp)

    Ordered Subsequence Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  3. hdu 3333 树状数组+离线处理

    思路:既然要求的是不同的元素的和,那么我们可以想办法让每个值在区间中只出现一次,于是想到了离线的算法:将查询按照右端点排序,位置在右端点之前的元素都插入到树状数组中,对于已经出现过的值,我们要先删除( ...

  4. hdu 4417(树状数组+离线算法)

    解题思路:这道题要求某区间内比h小的个数,其实这里可以类似于树状数组求逆序数那样.关键是如何转换成树状数组的模型,这才是本题的难点. 我们首先分析,如果知道h在该区间的哪个位置,那么剩下的就很好做了. ...

  5. hdu 1394(树状数组求逆序数)

    解题思路:这道题是求循环数组中逆序数最小值,求逆序数这里肯定是用树状数组.只是这里有一点点变化,由于题目中n位数是0-n-1的一个排列,所以num[i]可表示为比num[i]小的数的个数.把第一位的数 ...

  6. Weak Pair HDU - 5877 树状数组+离散化+DFS遍历

    题意 给我们一颗有根有向树 以及每个点得权值a[1]~a[n] 需要我们求出在这颗树种有多少对满足以下两个条件的pair (1)u是v的祖先节点 (2)a[u]*a[v]<= k N<=1 ...

  7. hdu 4970 树状数组 “改段求段”

    题意:塔防.给1--n,给出m个塔,每个塔有攻击力,给出k个怪兽的位子和血量,问有几只可以到达n点. 今天刚刚复习了树状数组,就碰到这个题,区间更新.区间求和类型.第三类树状数组可以斩. 注意一下大数 ...

  8. hdu 2481 树状数组 双关键字排阻

    2481这道水题坑了我三天.....数组超界10W让我的6.0崩溃了....然后由于不懂...重装了一边.... 不扯了...讲思想.. 把s看成x,e看成y,于是,每次输入就相当于输入一组点,看了网 ...

  9. hdu 1541 树状数组版)——咯咯

    /*树状数组版*/ #include<stdio.h> #include<string.h> #define L 32005 #define N 15005 int tree[ ...

最新文章

  1. Elasticsearch入门Demo(二)
  2. 轻松学Pytorch – 年龄与性别预测
  3. FineUI小技巧(4)关闭窗体那些事
  4. [原]Failed to load SELinux policy. System Freezing ----redhat7or CentOS7 bug
  5. 晶科能源坐稳全球光伏组件制造商“头把交椅”
  6. 在Filter 无法跳转地址
  7. 在阿里做博士后是一种怎样的体验?
  8. 无法将该对象添加到ldap服务器_LDAP 基础知识
  9. powerpoint 发布_PowerPoint的死亡:这些谈话打破了常规
  10. mysql逻辑读高影响_运维日记| MySQL/Oracle深度解析之一:逻辑读
  11. shell 练习题02 一个文件里将内容三行显示为一行
  12. java文件下载和导出文件名乱码浏览器兼容性问题
  13. 消息队列控制灯代码_基于ARM的智能灯光控制系统经验总结分享
  14. Django自定义过滤器
  15. html前端论文参考文献,web前端论文参考文献论文
  16. 基于spss的偏相关分析(partial correlation analysis)
  17. 电芯容量在前期循环中容量增加_锂电池随着使用次数增加而最大容量下降,为什么...
  18. PTCMS可听书可下载的小说站源码+带采集和教程
  19. 工业机器人的TCP点
  20. 唐朝一体机屏幕显示变红

热门文章

  1. 【05】CC - 格式
  2. SCCM2012系列之六,SCCM2012部署前的WDS准备
  3. WinSCP无法连接linux,而secureCRT却可以
  4. 计算机运算器存储器知识点,计算机一级知识点:运算器、控制器
  5. java垃圾收集方法_java几种垃圾收集方法和垃圾收集器
  6. ArcGIS Maritime Server 开发教程(四)Maritime Service 开发实践
  7. 代码提示(支持3.X和4.X)—ArcGIS API forJavaScript
  8. iOS应用支持IPV6及阿里云相关配置
  9. Spring Boot自定义Banner
  10. 第三方网站调用微信公众号的图片被禁止