#include<bits/stdc++.h>
using namespace std;
const int lim = 100010;
int n,c[lim];// 记录差分变化
void update(int a,int val){while(a<=n){c[a]+=val;a+=a&(-a);}
}
int get(int x){int sum=0;while(x){sum+=c[x];x-=x&(-x);}return sum;
}
int main()
{while(scanf("%d",&n),n){int a,b;int tmp = n;    while(tmp--){scanf("%d%d",&a,&b);update(a,1);update(b+1,-1);}for(int i=1;i<=n;i++){printf("%d%c",get(i),i==n?'\n':' ');}memset(c,0,sizeof(c)); }return 0;
} 

差分技巧的运用

也就是对于一个序列
我们假设
array a :1 2 3 4 5
array b :1 1 1 1 1
上面的是原数组下面的是差分数组
我们可以得知 其中的一个元素
有性质 a[i] = Sigma(i=1 to i) bi
并且当我们得到如果在2,3上区间更新加2
那么
a: 1 4 5 4 5
b: 1 3 1 -1 1
可知 只有2,4变化 2加了2 而4减了2
所以啊
只有在区间边界才会差分才会变化
那么当我们单点求某个值时
我们就可以用树状数组维护前缀和了

HDU 1566 Count the Colors 树状树组 区间更新 单点求值相关推荐

  1. Color the ball(树状数组区间更新+单点求值)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1556 Color the ball Time Limit: 9000/3000 MS (Java/Ot ...

  2. 树状数组之区间修改单点查询

    树状数组的区间修改单点查询 树状数组其实本质还单点修改区间查询,但是我们怎么延伸到这个呢,我们建立一个差分数组, 比如:                a[10]={4, 6, 7, 5, 1, 6, ...

  3. hdu3966 树链剖分点权模板+线段树区间更新/树状数组区间更新单点查询

    点权树的模板题,另外发现树状数组也是可以区间更新的.. 注意在对链进行操作时方向不要搞错 线段树版本 #include<bits/stdc++.h> using namespace std ...

  4. 树状数组的相关知识 及 求逆序对的运用

    文章目录 树状数组概念 前缀和和区间和 树状数组原理 区间和--单点更新 前缀和--区间查询 完整代码 离散化 sort函数 unique函数去重 erase函数仅保留不重复元素 通过树状数组求逆序对 ...

  5. HDU-4777 Rabbit Kingdomom(树状数组、区间离线)

    title: HDU-4777 Rabbit Kingdomom(树状数组.区间离线) date: 2018-12-14 11:20:15 tags: [树状数组,离线,区间] categories: ...

  6. 二维树状数组模板(区间修改+区间查询)

    二维树状数组模板(区间修改+区间查询) 例题:JOIOI上帝造题的七分钟 一共两种操作: \(L\ x_1\ y_1\ x_2\ y_2\ d\):把\((x_1,y_1)\),\((x_2,y_2) ...

  7. 【LuoguP3038/[USACO11DEC]牧草种植Grass Planting】树链剖分+树状数组【树状数组的区间修改与区间查询】...

    模拟题,可以用树链剖分+线段树维护. 但是学了一个厉害的..树状数组的区间修改与区间查询.. 分割线里面的是转载的: ----------------------------------------- ...

  8. 树状数组的区间修改+查询

    首先看树状数组是用来求前缀和比较方便的一种数据结构 sum[i] = Sigma a[i] =Sum(bit[x]) 而区间修改也不难实现 就是引入一个差分数组del del[i]表示对i~n的修改 ...

  9. 树状数组维护区间和的模型及其拓广的简单总结

    by wyl8899 树状数组的基本知识已经被讲到烂了,我就不多说了,下面直接给出基本操作的代码. 假定原数组为a[1..n],树状数组b[1..n],考虑灵活性的需要,代码使用int *a传数组. ...

最新文章

  1. (转)命令行下,用 xcodebuild 生成ipa文件,通过 itms-services 协议安装
  2. php对象编程遇到的BUG!
  3. 为什么浮点型运算结果会有误差?
  4. poj 1679 判断最小生成树是否唯一
  5. SharePoint 2010 大中小架构的部署
  6. jdbc url写法(集群)
  7. 如何理解通配符类型参数/协变性/逆变性?
  8. 永中office属于职称计算机吗,2017职称计算机考试WPS_Office检测练习及答案13-中华考试网...
  9. IOS 开展 分别制定了iphone 和 ipad 好? 或开发一个 Universal好?
  10. 金万维异速联远程接入解决方案
  11. Guava学习笔记-Joiner
  12. Apollo Planning决策规划算法代码详细解析 (14):SPEED_BOUNDS_PRIORI_DECIDER
  13. html让登录框3d,CSS3实现3D旋转动态显示登录注册
  14. 矩阵论-线性空间与线性映射
  15. 拔开云雾的linux网络
  16. springcloud整合Gateway
  17. 基于Web的电子商务解决方案(1)(转)
  18. 编译Android源码(9.0)
  19. mysql的flush privileges指令执行必要性问题
  20. Java获取下周、本周、上月、本月第一天最后一天

热门文章

  1. VS2012 发布网站步骤
  2. linux 命令行模式下,浏览网页方法
  3. WordPress的RSS订阅优化
  4. ssh sftp 免密码 公钥登录
  5. IDEA启动tomcat报错java.util.zip.ZipException: error in opening zip file
  6. vue开发小程序Demo
  7. T-SQL 字符串前加 N 是什么意思
  8. 通过web.xml文件自动启动spring容器加载对应的配置文件
  9. Select count(*)和Count(1)的区别和执行效率比较
  10. java spring注入 静态方法_java相关:spring为类的静态属性实现注入实例方法