树状数组三种写法
来源:互联网 发布:java enum if用法 编辑:程序博客网 时间:2024/05/10 14:20
第一种:点修改 区间求和
hdu1166
http://acm.hdu.edu.cn/showproblem.php?pid=1166
题意:N个营地,1..N,每个营地有一些人
两种操作:
1. 给某个营地加上或减去一些人
2. 询问一个区间的总人数
inline void add(int x, int value){ for (int i=x; i<=n; i+=lowbit(i)){ tree[i] += value; }}inline int get(int x){ int ret = 0; for (int i=x; i; i-=lowbit(i)){ ret += tree[i]; } return ret;}
第二种:区间修改,点询问
用类似前缀和的思想统计一个点的变化量,从而将第二种转化问第一种
可以发现,第二种的代码和第一种加减相反
hdu1556
http://acm.hdu.edu.cn/showproblem.php?pid=1556
题意:n个气球,每次给一个区间涂色,问最后每个气球被涂色几次
inline void add(int x, int value){ for (int i=x; i; i-=lowbit(i)){ tree[i] += value; }}inline int get(int x){ int ret = 0; for (int i=x; i<=n; i+=lowbit(i)){ ret += tree[i]; } return ret;}
第三种:区间修改,区间询问
0 0
- 树状数组三种写法
- 数组的三种写法
- 字符数组三种写法
- HDU-1166(树状数组写法)
- 树状数组的基本写法
- 树状数组区间求和三种模型
- 树状数组区间求和三种模型
- 树状数组区间求和三种模型
- 树状数组区间求和三种模型
- 树状数组区间求和三种模型
- 详解树状数组三种模型
- 树状数组区间求和三种模型
- 树状数组的三种操作
- 树状数组求和三种模型
- 树状数组的三种模式
- 树状数组(三)
- HDU4843Wow! Such Sequence!(树状数组写法)
- 树状数组区间求和的三种模型
- iOS之内存管理
- 没错,我就是个妹子
- CentOS6.6 安装与配置 MySQL Cluster 7.4.4
- 1021. 多重继承
- 安卓 TableLayout
- 树状数组三种写法
- 显示0、1矩阵
- 1022. 车辆选择(继承)
- mysql 无法联接常见故障及原因
- 文件操作
- 1023. 分钟秒钟的时间相减
- GCC compile debug: print include files and compile stage info.
- Ubuntu14.04 编译安装 MySQL-5.6.22
- 1024. 分析四则运算表达式