nyoj116 士兵杀敌(二) (树状数组)
来源:互联网 发布:手机单机小游戏知乎 编辑:程序博客网 时间:2024/05/16 11:38
原题链接:nyoj116 士兵杀敌(二)
基本的树状数组的题,关于树状数组网上解析有很多,讲的也很详细,这里不做过多解释了,主要是下标按照位运算非常巧妙的储存
//树状数组:复杂度O(log n) #include <cstdio>using namespace std;const int MAX_N = 1000000 + 10;int N, M;int bit[MAX_N];//bit[i]表示第1项到第i项的和 void add(int i, int x){//加 while(i <= N){bit[i] += x;i += i & -i;}}int sum(int i){//求和a[1]到a[i]之间的和 int s = 0;while(i > 0){s += bit[i];i -= i & -i;}return s;}int main(){int i, x;char s[8];scanf("%d%d", &N, &M);for(i = 0;i < N;i ++){scanf("%d", &x);add(i + 1, x);//下表从1开始 }int m, n;for(i = 0;i < M;i ++) {scanf("%s%d%d", s, &m, &n);if(s[0] == 'Q')printf("%d\n", sum(n) - sum(m - 1));else add(m, n);}return 0;}
0 0
- NYOJ116 士兵杀敌(二)【树状数组】
- NYOJ116 士兵杀敌(二)(树状数组)
- nyoj116 士兵杀敌(二) (树状数组)
- nyoj116士兵杀敌(二)【线段树||树状数组】
- nyoj116 士兵杀敌(二)树状数组与线段树
- NYOJ116 士兵杀敌(二)
- NYOJ116士兵杀敌(二)
- nyoj116 士兵杀敌(二)
- nyoj116——士兵杀敌(二)
- 【nyoj116】士兵杀敌二(线段树)
- NYOJ 士兵杀敌(二) 树状数组
- NYOJ - 士兵杀敌(二)(树状数组)
- nyoj116士兵杀敌(二)
- nyoj116 士兵杀敌(二)(线段树)
- nyoj116士兵杀敌(二)线段树单点更新
- NYOJ116 士兵杀敌(二) 线段数、单点更新
- NYOJ116 士兵杀敌(二) 单点更新+区间求和
- 士兵杀敌(树状数组)
- 数组和集合(一)
- 元素的相对定位与绝对定位
- 国内技术社区活跃的 Android 大神汇总
- git一次push异常
- B1010. 一元多项式求导 (25')
- nyoj116 士兵杀敌(二) (树状数组)
- HDR
- [ML]强化学习
- 解决安卓端虚拟按键盖住输入框的方法
- numpy学习笔记-唯一化
- css伪类之input输入框鼠标点击边框变色效果
- 解决iframe作为子窗口,刷新后iframe页面跳转到其它页面的问题
- python生成opencv正样本和负样本描述文件
- Android 选择图片、上传图片