[hdu5247]rmq+预处理
2015-06-03 01:53
225 查看
题意:有一个无序数组,求有多少个长度为k的区间满足把区间内的数排序后是连续的。
思路:长度为k的区间排序后是 连续的数等价于maxval-minval等于k-1并且不同的数有k个(或者说没有相同的数),第一个条件可以用rmq快速得到区间最大值与最小值之差,第二个条件可以这样求,按区间的左边界分类预处理,遍历右边界,如果[L,R]内有相同的数,则[L,R+k]有相同的数,否则转化为判断a[R+1]是否在区间[L,R]内出现过,维护一个last数组,last[i]表示i上一次出现的位置,那么等价于判断last[a[R+1]]是否>=L,由于a[i]很大,所以需离散后处理。
思路:长度为k的区间排序后是 连续的数等价于maxval-minval等于k-1并且不同的数有k个(或者说没有相同的数),第一个条件可以用rmq快速得到区间最大值与最小值之差,第二个条件可以这样求,按区间的左边界分类预处理,遍历右边界,如果[L,R]内有相同的数,则[L,R+k]有相同的数,否则转化为判断a[R+1]是否在区间[L,R]内出现过,维护一个last数组,last[i]表示i上一次出现的位置,那么等价于判断last[a[R+1]]是否>=L,由于a[i]很大,所以需离散后处理。
相关文章推荐
- [hdu5249]动态中位数
- 网络请求 代码 系统自带类源码
- Gas Station
- 【强连通分量】Bzoj1051 HAOI2006 受欢迎的牛
- iOS CGRectGetMaxX/Y 使用
- Reverse Integer 解题报告
- 图 | 为什么存在关于图的研究
- [hdu4497]分解质因数
- jQuery 属性
- jQuery 杂项方法
- jQuery AJAX 方法
- 一个软件工程师的7年工作经验总结
- 【汇总】iOS开发及Xcode使用中遇到的一些报错问题汇总
- jQuery 遍历方法
- jQuery HTML CSS 方法
- 菜鸟学Android笔记(十八):http协议详解
- jQuery 效果方法
- hdu 1028 Ignatius and the Princess III(用母函数解决整数分拆问题)
- jQuery 事件 方法
- 你必须知道的Android命名规范