分治总结
有各种分治:CDQ分治,树上分治,数据结构上分治,根号分治,etc.
普通分治
求逆序对
用归并排序求逆序对。
Sol:
其实逆序对是在归并排序时顺带求的,主要是归并排序。
我们要对区间
现在考虑怎么把两边合并。我们定义两个指针
求最大子段和
求当前区间
Sol:
先将当前区间分成两边
考虑将两边的区间合并得到答案。
发现只维护每个区间的最大子段和不够,再维护最大前缀和,最大后缀和与区间和。
合并时维护区间的最大前缀和
这个分治操作可以搞到线段树上,这是简单的。
求关于所有区间的信息
发现关于所有区间的信息是
每次分治后只需考虑跨过区间中点的区间的答案,考虑合并得到这个答案,一般是处理左边区间的后缀信息,右边区间的前缀信息,然后尝试合并,再简化合并的过程,通过分析一些关于答案的性质来快速计算。
CDQ分治
树上分治
去看树分治。
DS上分治
线段树分治,去看线段树。
根号分治
去看根号科技。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】