摘要: 回溯算法C++实现详解 一、回溯算法概述 什么是回溯算法 回溯算法是一种通过探索所有可能的候选解来找出所有解的算法。如果候选解被确认不是一个解(或者至少不是最后一个解),回溯算法会通过在上一步进行一些变化来丢弃该解,即"回溯"并尝试其他可能的解。 核心思想 路径:已经做出的选择 选择列表:当前可以做 阅读全文
posted @ 2026-06-30 16:59 十七code 阅读(3) 评论(0) 推荐(0)
摘要: 模拟退火算法(Simulated Annealing)完全指南 一份从原理到C++实现的完整教程 📖 目录 1. 算法概述 2. 核心原理 3. 算法流程图 4. C++完整实现 5. 参数调优指南 6. 优缺点分析 7. 应用场景 8. 改进变种 9. 运行示例 1. 算法概述 模拟退火(Sim 阅读全文
posted @ 2026-06-22 22:07 十七code 阅读(16) 评论(0) 推荐(0)
摘要: 倍增思想与 ST 表(稀疏表) 一、倍增思想 1. 核心概念 倍增(Binary Lifting)也叫二进制拆分法:将较大的步数/长度拆成若干个 2 的整数次幂之和,每次跳跃 2^k 步,大幅减少操作次数。 任意正整数可唯一表示为 2^0 + 2^1 + 2^2 + ... 的形式,例如: 5 = 阅读全文
posted @ 2026-06-13 16:17 十七code 阅读(7) 评论(0) 推荐(0)
摘要: 离散化 在算法竞赛中,我们经常遇到这样的问题:数据范围巨大(例如 10^9),但实际出现的不同数值却很少(例如 10^5)。如果直接按照值域开数组,内存会爆炸,时间也会超限。这时就需要一种技巧 —— 离散化。本文将深入讲解离散化的概念、实现方法,并提供完整的 C++ 代码示例。 什么是离散化? 离散 阅读全文
posted @ 2026-06-08 17:25 十七code 阅读(11) 评论(0) 推荐(0)
摘要: 广度优先搜索(BFS)及 C++ 实现 1. 概述 广度优先搜索(BFS)是一种用于图(或树)的遍历算法。它从一个起点出发,先访问所有距离为 1 的节点,再访问距离为 2 的节点,依此类推。因此 在无权图中,BFS 可以找到从起点到任意可达节点的最短路径(按边数)。 2. 核心思想 使用 队列(FI 阅读全文
posted @ 2026-06-05 14:37 十七code 阅读(15) 评论(0) 推荐(0)
摘要: 对顶堆(Double-Heap) 简介 对顶堆是一种用于动态维护数据流中位数的常用技巧。它利用一个大根堆和一个小根堆,在数据不断插入时高效地获取当前中位数(或其他分位数)。 核心思想 大根堆(max-heap):存储数据中较小的一半,堆顶为这部分的最大值。 小根堆(min-heap):存储数据中较大 阅读全文
posted @ 2026-06-03 21:42 十七code 阅读(14) 评论(0) 推荐(0)
摘要: C++ STL 快速入门指南 C++ STL(Standard Template Library,标准模板库)是 C++ 标准库的核心组成部分,提供了一套通用的容器、迭代器、算法和函数对象,极大地提高了代码的复用性、效率和可读性。 STL 六大组件 容器 (Containers):存储数据集合的类模 阅读全文
posted @ 2026-05-24 22:28 十七code 阅读(14) 评论(0) 推荐(0)
摘要: 在算法设计中,时间与空间的配置策略本质上是一个解决资源权衡的问题:在有限的计算资源和储存资源上,如何优化算法的执行效率。 常见的策略有以下两种: 1.空间换时间 核心思想:使用使用更多内存来存储中间结果,避免重复计算,从而降低时间复杂度。 如: 哈希表:O(1)查找代替O(n)遍历。 动态规划:保存 阅读全文
posted @ 2026-05-20 09:10 十七code 阅读(24) 评论(0) 推荐(0)
摘要: Java中的ArrayList随笔 ArrayList 是 Java 集合框架中最常用的类之一,位于 java.util 包中。它实现了 List 接口,底层基于动态数组,能够自动扩容,支持随机访问,并且保持了元素的插入顺序(允许重复元素和 null)。 核心特性 动态数组:不像普通数组长度固定,A 阅读全文
posted @ 2026-05-18 22:20 十七code 阅读(27) 评论(0) 推荐(0)
摘要: 多态是面向对象编程的三大特性之一(继承、封装、多态)。在 Java 中,多态指的是同一个类型的变量,调用同一个方法,由于指向的具体对象不同,最终执行的行为也不同。 多态的核心是父类引用指向子类对象。也就是说,声明变量时使用父类类型,实际创建对象时使用子类的构造方法。 Animal a = new D 阅读全文
posted @ 2026-05-09 15:53 十七code 阅读(5) 评论(0) 推荐(0)