当前位置: 首页 > news >正文

分治算法乱讲

何为分治

分治(Divide and Conquer),就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。——摘自 OI wiki

在竞赛中也很有用,但是我不会

分治实现

根据它的定义,我们很容易就想到递归求解。

void dfs(int l, int r){if(可以直接求解){...;return;}int d = ...;// 分成两个子问题dfs(l, d);dfs(d + 1, r);
}

根据题目所求的不同而变。以及线段树的实现也是根据分治的。

例题

分治的理解还是得要例题的。

  • [JSOI2015] 最大公约数

我们看到这题,\(n\le 10^5\)。DP 不行;贪心不行;那么大概率就是分治了。

对于一个区间 \([l,r]\),我们设 \(mid=\dfrac{l+r}{2}\)

那么如果最大的子序列就在 \([l,mid]\)\([mid+1,r]\) 里,我们就直接递归到 \([l,mid]\)\([mid+1,r]\) 里去。

麻烦的是横跨了 \(mid\) 的情况。

我们在

http://www.hskmm.com/?act=detail&tid=38348

相关文章:

  • 电动三轮车后桥改造添加动能回收实现无限续航的可能。
  • Claude Code配置记录
  • 视频融合平台EasyCVR在智慧工地中的应用:构建安全、智能、高效的“云上工地” - 实践
  • 股票操作统计分析报告 - 2025年10月24日
  • [HZOI] CSP-S模拟37 赛后总结
  • 24
  • 数字人:数字人公司排行榜及技术深度剖析
  • 【同余最短路】学习笔记
  • 数字人:数字人公司深度解析与未来展望
  • CSP/NOIP 复习:单调栈
  • 算法分析--生成排列
  • 三大安全认证授权协议深度对比:OAuth、OpenID Connect与SAML
  • 数字人公司:数字人新趋势技术驱动与市场前景解析
  • AI股票预测分析报告 - 2025年10月24日
  • 数据绑定相关概念理解
  • 数字人企业:数字人公司排行榜Top 3解析
  • (简记)(自用)线段树区间拆分时间复杂度证明
  • 数字人企业:数字人公司排行榜深度解析
  • 数字人:怎么选择数字人实力公司
  • 拉格朗日插值优化DP
  • 冬日绘板 2026 珂朵莉计划 如何获取 Token
  • 数字人企业:数字人公司技术驱动的三大标杆
  • Linux下的拼音输入法 (2)
  • 数字人平台:重点推荐优质数字人公司
  • SpringBoot整合缓存2-Redis
  • 数字人企业:推荐数字人TOP3公司
  • NOI25D2T2
  • 时钟同步
  • 深入解析:【Java系列课程Java学前须知】第3课 JDK,JVM,JRE的区别和优缺
  • 10.24 CSP-S 模拟37 改题记录