学习笔记: cdq分治
来源:互联网 发布:数据检索 编辑:程序博客网 时间:2024/05/01 09:51
今年xhr大神的论文有很大一部分内容是cdq分治及其扩展(也就是二进制分组),拜读后觉得还是蛮有用的,这里小小地总结一下。(话说自己草稿箱里还有好多学习笔记的半成品呢,真是弱爆了。顺便感谢下ydf向我介绍了那么好的东西)
推荐论文:
1 《从<Cash>谈一类分治算法的应用》 陈丹琦
2 《浅谈数据结构题的几个非经典解法》 许昊然
Q: cdq分治和普通的分治有什么区别?
A: 在我们平常使用的分治中,每一个子问题只解决它本身(可以说是封闭的)。而在cdq分治中,对于划分出来的两个子问题,前一个子问题用来解决后一个子问题而不是它本身。
在很多问题中(比如大多数数据结构题),我们经常需要处理一些动态问题。然而我们对动态问题的处理总是不如静态问题来的那么方便,于是就有了cdq分治。但正如论文2所提到的,使用这算法的前提是问题必须具有以下两个性质:
1.修改操作对询问的贡献独立,修改操作互不影响效果。
2.题目允许使用离线算法。
具体算法流程如下:
1.将整个操作序列分为两个长度相等的部分(分)
2.递归处理前一部分的子问题(治1)
3.计算前一部分的子问题中的修改操作对后一部分子问题的影响(治2)
4.递归处理后一部分子问题(治3)
在整个流程中,最核心的就是步骤3:因为前一部分子问题中的修改操作相对后一部分子问题来说是静态处理,所以我们就可以更加方便地计算后一部分子问题。
- 学习笔记: cdq分治
- 学习笔记: cdq分治
- 【cdq分治】cdq分治与整体二分学习笔记Part2.cdq分治
- 学习笔记——cdq分治
- CDQ分治学习
- 【cdq分治】cdq分治与整体二分学习笔记Part1.整体二分
- CDQ分治与斜率优化DP——学习笔记
- cdq分治
- cdq分治
- cdq分治
- cdq分治
- cdq分治&整体二分学习缓存
- CDQ 学习笔记
- 时间分治(cdq分治)
- bsoj2653 cdq分治
- 【CDQ分治】数据
- BZOJ3262【CDQ分治】
- BZOJ1492【CDQ分治】
- 问题四十七: 有等式[※×(※3+※)]2=8※※9,其中※处为1个数字,滴上了墨水无法辨认
- 向国外投稿需要注意些下面几点
- 【Unity3D插件】NGUI屏幕自适应
- C# WebSocket 聊天室
- Chart FX使用笔记
- 学习笔记: cdq分治
- 关于vs2008上的socket链接错误问题
- 公告:CSDN新版首页上线
- ARM平台的ppp-2.4.4交叉编译
- 让ubuntu开机自启动小键盘
- Java 默认修饰符 总结
- JS window 窗口的操作
- new Date 在IE 下 兼容性的问题
- Jsp&Servlet