HDU 1566 Count the Colors 树状树组 区间更新 单点求值
#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 树状树组 区间更新 单点求值相关推荐
- Color the ball(树状数组区间更新+单点求值)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1556 Color the ball Time Limit: 9000/3000 MS (Java/Ot ...
- 树状数组之区间修改单点查询
树状数组的区间修改单点查询 树状数组其实本质还单点修改区间查询,但是我们怎么延伸到这个呢,我们建立一个差分数组, 比如: a[10]={4, 6, 7, 5, 1, 6, ...
- hdu3966 树链剖分点权模板+线段树区间更新/树状数组区间更新单点查询
点权树的模板题,另外发现树状数组也是可以区间更新的.. 注意在对链进行操作时方向不要搞错 线段树版本 #include<bits/stdc++.h> using namespace std ...
- 树状数组的相关知识 及 求逆序对的运用
文章目录 树状数组概念 前缀和和区间和 树状数组原理 区间和--单点更新 前缀和--区间查询 完整代码 离散化 sort函数 unique函数去重 erase函数仅保留不重复元素 通过树状数组求逆序对 ...
- HDU-4777 Rabbit Kingdomom(树状数组、区间离线)
title: HDU-4777 Rabbit Kingdomom(树状数组.区间离线) date: 2018-12-14 11:20:15 tags: [树状数组,离线,区间] categories: ...
- 二维树状数组模板(区间修改+区间查询)
二维树状数组模板(区间修改+区间查询) 例题:JOIOI上帝造题的七分钟 一共两种操作: \(L\ x_1\ y_1\ x_2\ y_2\ d\):把\((x_1,y_1)\),\((x_2,y_2) ...
- 【LuoguP3038/[USACO11DEC]牧草种植Grass Planting】树链剖分+树状数组【树状数组的区间修改与区间查询】...
模拟题,可以用树链剖分+线段树维护. 但是学了一个厉害的..树状数组的区间修改与区间查询.. 分割线里面的是转载的: ----------------------------------------- ...
- 树状数组的区间修改+查询
首先看树状数组是用来求前缀和比较方便的一种数据结构 sum[i] = Sigma a[i] =Sum(bit[x]) 而区间修改也不难实现 就是引入一个差分数组del del[i]表示对i~n的修改 ...
- 树状数组维护区间和的模型及其拓广的简单总结
by wyl8899 树状数组的基本知识已经被讲到烂了,我就不多说了,下面直接给出基本操作的代码. 假定原数组为a[1..n],树状数组b[1..n],考虑灵活性的需要,代码使用int *a传数组. ...
最新文章
- (转)命令行下,用 xcodebuild 生成ipa文件,通过 itms-services 协议安装
- php对象编程遇到的BUG!
- 为什么浮点型运算结果会有误差?
- poj 1679 判断最小生成树是否唯一
- SharePoint 2010 大中小架构的部署
- jdbc url写法(集群)
- 如何理解通配符类型参数/协变性/逆变性?
- 永中office属于职称计算机吗,2017职称计算机考试WPS_Office检测练习及答案13-中华考试网...
- IOS 开展 分别制定了iphone 和 ipad 好? 或开发一个 Universal好?
- 金万维异速联远程接入解决方案
- Guava学习笔记-Joiner
- Apollo Planning决策规划算法代码详细解析 (14):SPEED_BOUNDS_PRIORI_DECIDER
- html让登录框3d,CSS3实现3D旋转动态显示登录注册
- 矩阵论-线性空间与线性映射
- 拔开云雾的linux网络
- springcloud整合Gateway
- 基于Web的电子商务解决方案(1)(转)
- 编译Android源码(9.0)
- mysql的flush privileges指令执行必要性问题
- Java获取下周、本周、上月、本月第一天最后一天
热门文章
- VS2012 发布网站步骤
- linux 命令行模式下,浏览网页方法
- WordPress的RSS订阅优化
- ssh sftp 免密码 公钥登录
- IDEA启动tomcat报错java.util.zip.ZipException: error in opening zip file
- vue开发小程序Demo
- T-SQL 字符串前加 N 是什么意思
- 通过web.xml文件自动启动spring容器加载对应的配置文件
- Select count(*)和Count(1)的区别和执行效率比较
- java spring注入 静态方法_java相关:spring为类的静态属性实现注入实例方法