敌兵布阵 树状数组
来源:互联网 发布:2017勇士vs骑士g4数据 编辑:程序博客网 时间:2024/06/06 03:20
这是个区间求和的代码
#include<iostream>#include<stdio.h>#include<string.h>#include<stdlib.h>using namespace std;int N;int a[50010],b[50010];int lowbit(int k){return k&(-k);}void add(int k,int num){while(k<=N){a[k]+=num;k+=lowbit(k);}}void sub(int k,int num){while(k<=N){a[k]-=num;k+=lowbit(k);}}int read(int k) //求从1到K的和 {int sum=0;while(k>0){sum+=a[k];k-=lowbit(k); } return sum;}int main(){int T,i,j,re=1;cin>>T;char ch[6];while(T--){printf("Case %d:\n",re++);memset(a,0,sizeof(a));cin>>N;for(i=1;i<=N;i++){int temp;cin>>temp;add(i,temp);}while(cin>>ch){if(strcmp(ch,"End")==0) break;if(strcmp(ch,"Add")==0){int a,b;scanf("%d %d",&a,&b);add(a,b);}else if(strcmp(ch,"Sub")==0){int a,b;scanf("%d %d",&a,&b);sub(a,b);}else{int a,b;scanf("%d %d",&a,&b);cout<<read(b)-read(a-1)<<endl;}}} }
下面这个是求区间最值的代码,不对不对,树状数组似乎不适合求区间最值。
0 0
- 敌兵布阵(树状数组)
- 敌兵布阵-树状数组
- 敌兵布阵 --- 树状数组
- 敌兵布阵 树状数组
- 树状数组--敌兵布阵
- HDU 敌兵布阵 树状数组
- hdu_1166 敌兵布阵(树状数组)
- hdu1166-敌兵布阵-树状数组
- hdu1166 敌兵布阵 +树状数组
- 敌兵布阵 1166 树状数组
- hdu1166 敌兵布阵 (树状数组)
- 树状数组解决敌兵布阵~~
- 树状数组解敌兵布阵
- 敌兵布阵(树状数组)
- 敌兵布阵(树状数组)
- hdu1166 敌兵布阵 树状数组
- HDU1166 敌兵布阵 【树状数组】
- 敌兵布阵(树状数组)
- CSS之未知高度img垂直居中
- ios webview 进度条的展示(一)
- 【CentOS7】服务环境搭建
- 学习四元数与姿态转换矩阵思考(1)
- 多校联盟#con1 等差区间
- 敌兵布阵 树状数组
- python异常处理和面向对象编程总结
- 接口及以太网链路配置与管理——2
- 算法笔试题:LUCKY STRING
- iOS开发mock接口数据(三)之实战教程
- Android 6.0动态权限申请
- maven下载jar包失败的原因- 解决方法汇总
- 工具bean类
- 这是我的第一篇博客