扩展讲解
竞赛向1. 宏定义(#define)宏定义是 C++ 的预处理指令,用于在编译前进行文本替换,能简化重复代码、提升编写速度。 1.1 常用宏123456789101112131415161718192021#include <iostream&...
竞赛向1. 宏定义(#define)宏定义是 C++ 的预处理指令,用于在编译前进行文本替换,能简化重复代码、提升编写速度。 1.1 常用宏123456789101112131415161718192021#include <iostream&...
算法竞赛二进制位运算 学习讲义 一、二进制与位运算的核心价值二进制是计算机的底层数据表示形式,位运算是直接对二进制位(0/1)执行的底层操作。在算法竞赛中,位运算有不可替代的核心优势: 极致性能:位运算直接由CPU硬件支持,单条指令即可完...
C++ bitset一、bitset 的本质与核心优势1.1 本质bitset 是 C++ 标准库中一个固定大小的二进制位容器,它将数据存储为连续的二进制位(0或1),本质上是对“位运算”的高级封装,让我们可以像操作数组一样方便地操作单个二进制位,同...
拓扑图的深入应用一、有向图判环与环定位这是拓扑排序最基础的进阶用法,也是所有有向图问题的前置校验——绝大多数有向图算法的前提是图无环,而拓扑排序是最直观、最不易写错的判环方案。 1.1 核心原理拓扑排序的本质是“不断消除无前置依赖的节点(入度为0)”...
拓扑排序一、拓扑排序核心基础与算法设计1.1 基本定义与适用前提拓扑排序:对一个有向无环图(DAG, Directed Acyclic Graph) 的所有顶点进行线性排序,满足两个核心规则: 每个顶点在序列中仅出现一次; 对于图中任意一条有向边...
图论入门第一章 图的基本概念图是一种描述元素之间关联关系的抽象数据结构,也是算法竞赛中最常见的模型之一(导航、社交网络、路径规划等问题均可抽象为图模型)。 1.1 图的定义一个图由顶点集V和边集E两部分组成,记作 $G=<V,E&g...
线段树讲义目录 线段树的结构和思想 基础操作:单点修改与区间查询 进阶操作:复杂的信息合并 高级操作:区间打标记(懒标记)与标记下传 4.1 基础懒标记:区间加法+区间查询最大值 4.2 复杂懒标记:加法、乘法、赋值混合操作 特殊应用:线段树上二分 ...
最小生成树(MST)与次小生成树(SMST)前置知识要求学习前,需熟练掌握以下内容: 图的基础存储方式(邻接表/链式前向星) 并查集(路径压缩+按秩合并,时间复杂度近似 $O(\alpha(n))$ ) 树的DFS/BFS遍...
LCA 问题一、前置知识学习本讲义前,你需要掌握以下内容: 树的基本概念:根节点、父/子节点、深度、祖先、子树、路径等 树的存储方式:邻接表(vector 实现) 基础搜索算法:DFS(深度优先搜索)、BFS(广度优先搜索) 二进制...
倍增与RMQ问题前言倍增(Binary Lifting)是算法竞赛中核心的优化思想,其本质是通过二进制拆分将线性规模的操作压缩到对数级别,核心解决“可合并状态下的快速跳转、区间信息查询”问题;而RMQ(Range Maximum/Minim...