hdu5869——Different GCD Subarray Query(思考+树状数组)
2016-09-10 20:11
295 查看
这是我第二次做这道题了,还是没做出来,真是惭愧。。
题意:长度n的序列, m个询问区间[L, R], 问区间内的所有子段的不同GCD值有多少种.
题解:考虑固定左端点的不同GCD值,只有不超过logA种, 所以事件点只有nlogA个. 那么离线处理, 按照区间右端点排序从小到大处理询问, 用一个树状数组维护每个GCD值的最大左端点位置即可. 复杂度是O(nlogAlogn).
题意:长度n的序列, m个询问区间[L, R], 问区间内的所有子段的不同GCD值有多少种.
题解:考虑固定左端点的不同GCD值,只有不超过logA种, 所以事件点只有nlogA个. 那么离线处理, 按照区间右端点排序从小到大处理询问, 用一个树状数组维护每个GCD值的最大左端点位置即可. 复杂度是O(nlogAlogn).
相关文章推荐
- hdu5869——Different GCD Subarray Query(思考+树状数组)
- 设计模式系列:(5)Builder Patterns
- EasyUI的treegrid 递归动态 填充数据
- EasyUI combotree 使用递归动态填数据
- A build only device cannot be used to run this target.
- Android - 使用Timer+Handler定时跨线程访问UI控件
- String,StringBuffer,StringBuilder间的恩怨情仇,值得你来细说一二
- Jquey 常用API
- HDU5869 Different GCD Subarray Query(线段树&&离线处理)
- League of Legends 通过 游戏ID查询玩家QQ号码。
- 简单一行代码解决流读取导致StringBuilder.toString()乱码问题
- UEFI、BIOS、Secure Boot的关系和知识介绍
- AbstractQueuedSynchronizer的介绍和原理分析
- OC-自定义Cell
- Android异步加载数据更新UI(Thread+Handler)
- 去掉UIToolBar上面的shadowImage
- OC-UIScrollView&UIPageControl
- android systemui解析
- AUI 中execScript 方法详解
- Android doc |Getting Started|部分 --Building a Flexible UI(部分翻译)