hdu1556 树状数组区间更新单点查询板子
就是裸的区间更新:
相对于直观的线段树的区间更新,树状数组的区间更新原理不太相同:由于数组中的一个结点控制的是一块区间,当遇到更新【l,r】时,先将所有能控制到 l 的结点给更新了,这样一来就是一下子更新到【l,+无穷】了,所以需要将【r+1,+无穷】区间的更新消去,那么同理,【r+1,+无穷】反向减掉相同的数即可
#include<bits/stdc++.h>
using namespace std;
#define maxn 100005
int bit[maxn],a,b,n;
void add(int x,int num){
for(int i=x;i<=;i+=i&-i)
bit[i]+=num;
}
int query(int x){
int res=;
for(int i=x;i;i-=i&-i)
res+=bit[i];
return res;
}
int main(){
while(scanf("%d",&n),n){
memset(bit,,sizeof bit);
for(int i=;i<=n;i++){
scanf("%d%d",&a,&b);
add(a,);add(b+,-);
}
for(int i=;i<n;i++)
printf("%d ",query(i));
printf("%d\n",query(n));
}
}
hdu1556 树状数组区间更新单点查询板子的更多相关文章
- 【poj2155】Matrix(二维树状数组区间更新+单点查询)
		Description Given an N*N matrix A, whose elements are either 0 or 1. A[i, j] means the number in the ... 
- NBOJv2 1050 Just Go(线段树/树状数组区间更新单点查询)
		Problem 1050: Just Go Time Limits: 3000 MS Memory Limits: 65536 KB 64-bit interger IO format: % ... 
- HDU 4031 Attack(线段树/树状数组区间更新单点查询+暴力)
		Attack Time Limit: 5000/3000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Others) Total Sub ... 
- hdu3966 树链剖分点权模板+线段树区间更新/树状数组区间更新单点查询
		点权树的模板题,另外发现树状数组也是可以区间更新的.. 注意在对链进行操作时方向不要搞错 线段树版本 #include<bits/stdc++.h> using namespace std ... 
- HDU    1556   Color the ball  (树状数组   区间更新+单点查询)
		题目链接 Problem Description N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a <= b),lele便为骑上他的"小飞鸽&quo ... 
- POJ2155 Matrix(二维树状数组||区间修改单点查询)
		Given an N*N matrix A, whose elements are either 0 or 1. A[i, j] means the number in the i-th row an ... 
- 【树状数组区间修改单点查询+分组】HDU 4267 A Simple Problem with Integers
		http://acm.hdu.edu.cn/showproblem.php?pid=4267 [思路] 树状数组的区间修改:在区间[a, b]内更新+x就在a的位置+x. 然后在b+1的位置-x 树状 ... 
- POJ 2155 Matrix(二维树状数组+区间更新单点求和)
		题意:给你一个n*n的全0矩阵,每次有两个操作: C x1 y1 x2 y2:将(x1,y1)到(x2,y2)的矩阵全部值求反 Q x y:求出(x,y)位置的值 树状数组标准是求单点更新区间求和,但 ... 
- POJ-2155 Matrix---二维树状数组+区域更新单点查询
		题目链接: https://vjudge.net/problem/POJ-2155 题目大意: 给一个n*n的01矩阵,然后有两种操作(m次)C x1 y1 x2 y2是把这个小矩形内所有数字异或一遍 ... 
随机推荐
- NGUI的UIRoot会移动
			我在做一个游戏的时候,发现NGUI的UIRoot会自己移动位置,最初创建UIRoot的时候是可以随便拖动的,只要它自己移动了位置,你就拖不动它了,而且UIRoot下面的摄像机也会变成类似主摄像机之类的 ... 
- JavaEE学习总结(十二)—MyEclipse开发工具与HTML
			一.MyEclipse MyEclipse,是在eclipse 基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java.Java EE以及移动应用的开发.MyEclipse的功能 ... 
- vue项目 打包部署上线
			1. npm run dev:本地开发的时候做调试用的. 2. npm run build:打包部署上线,生成一个 dist 文件夹. 注意:用 npm run build 时,常遇到因引用路径不对导 ... 
- Linux记录-分区(df/fdisk/mount/umount/fuser)
			1.查看磁盘挂载(df -TH) 2.卸载umount /dev/vdb1 3.查杀用户进程(fuser -m -v -i -k /dev/vdb1) 4.再次卸载umount /dev/vdb1,并 ... 
- 转--python之正则入门
			原文地址 1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法 ... 
- iscroll.js 手机上下滑动 加载更多
			html <!DOCTYPE html> <html> <head> <title>下拉上拉刷新页面代码</title> <meta ... 
- C#复杂类型序列化
			[Serializable] public class CardItemInfo { private int lineWidth;//线宽 private CardItemInfo childCard ... 
- C# print2flash3文件转化
			1.下载print2flash3 并且安装print2flash3 2.转换工具类 (1)需要导入using Print2Flash3; 这个程序集 using System; using Syste ... 
- Java EE之Hibernate异常总结【5】java.lang.StackOverflowError[栈溢出]
			Exception in thread "main" java.lang.StackOverflowError at java.lang.reflect.InvocationTar ... 
- ubuntu下安装搜狗输入法以及出现不能输入中文的解决办法
			1. 官网下载安装包 http://pinyin.sogou.com/linux/?r=pinyin 下载你需要的版本,这里选择64位版. 2. 进入软件中心安装 3. 修改ibus为fcitx im ... 
