AcWing算法专题总览
AcWing算法专题总览这篇文章是我整理的 AcWing 基础算法专题入口,核心目标不是单纯罗列题目,而是把: 章节 模板 代表题 复习路径 放到同一个学习体系里。 这个专题适合谁 正在刷 AcWing 基础课的人 想按章节系统复习算法的人 想把题型和模板真正对应起来的人 建议使用方式更推荐按这个顺序用: 先看专题总览,明确章节结构 再进章节笔记,看模板和题解要点 最后到在线题库里做对应题目 专题入口 专题导航页 模板总览与章节索引 在线题库入口 章节笔记 基础算法章节笔记 数据结构章节笔记 搜索与图论章节笔记 数学知识章节笔记 动态规划章节笔记 贪心专题章节笔记 内容结构目前每个章节笔记页都已经补了两部分: 该章节最核心的模板代码 对应题目的简要题解和切入思路 后面还会继续补: 每章代表题的完整代码 更详细的题型分类 容易写错的边界与坑点总结 说明如果你是第一次使用,建议先看: 模板总览与章节索引 如果你已经在做题,建议直接按章节进入对应笔记。
AcWing 贪心专题章节笔记
AcWing 贪心专题章节笔记贪心题的关键不在代码,而在于“为什么当前选择不会让未来更差”。如果这一点说不清,十有八九还不能直接上贪心。 本章核心模板区间选点 / 最大不相交区间数量1234567891011sort(segs.begin(), segs.end(), [](auto& a, auto& b) { return a.second < b.second;});int res = 0, ed = -2e9;for (auto [l, r] : segs) { if (l > ed) { res++; ed = r; }} 区间分组12345678910sort(segs.begin(), segs.end());priority_queue<int, vector<int>, greater<int>> heap;for (auto [l, r] : segs) { if (heap....
AcWing 动态规划章节笔记
AcWing 动态规划章节笔记DP 这一章最重要的是定义状态,而不是先记答案。只要 f[i] 或 f[i][j] 的含义不清,后面的转移一定会乱。 本章核心模板01 背包 / 完全背包123456789// 01 背包for (int i = 1; i <= n; i++) for (int j = m; j >= v[i]; j--) f[j] = max(f[j], f[j - v[i]] + w[i]);// 完全背包for (int i = 1; i <= n; i++) for (int j = v[i]; j <= m; j++) f[j] = max(f[j], f[j - v[i]] + w[i]); 多重背包 / 分组背包1234567// 分组背包for (int i = 1; i <= n; i++) for (int j = m; j >= 0; j--) for (int k = 0; k < (int)group[i].size(); k++) ...
AcWing 数学知识章节笔记
AcWing 数学知识章节笔记数学这一章题很多,但真正要背下来的核心模板并不算多。关键在于分清“结论”“适用条件”和“代码实现”。 本章核心模板质数 / 约数 / gcd12345678910bool is_prime(int n) { if (n < 2) return false; for (int i = 2; i <= n / i; i++) if (n % i == 0) return false; return true;}int gcd(int a, int b) { return b ? gcd(b, a % b) : a;} 线性筛1234567for (int i = 2; i <= n; i++) { if (!st[i]) primes[cnt++] = i; for (int j = 0; primes[j] <= n / i; j++) { st[primes[j] * i] = true; ...
AcWing 搜索与图论章节笔记
AcWing 搜索与图论章节笔记这一章的主线是“建模 -> 存图 -> 选算法”。很多题目代码不复杂,难的是第一步选对方法。 本章核心模板DFS / 回溯1234567891011121314void dfs(int u) { if (u > n) { // 输出答案 return; } for (int i = 1; i <= n; i++) { if (!st[i]) { st[i] = true; path[u] = i; dfs(u + 1); st[i] = false; } }} BFS123456789101112131415queue<pair<int,int>> q;q.push({0, 0});dist[0][0] = 0;while (!q.emp...
AcWing 数据结构章节笔记
AcWing 数据结构章节笔记这一章的重点,是把常见结构写成稳定模板,并知道题目到底在考“结构操作”还是“结构思想”。 本章核心模板单链表1234567891011121314int head = -1, idx = 0;int e[N], ne[N];void add_to_head(int x) { e[idx] = x, ne[idx] = head, head = idx++;}void add(int k, int x) { e[idx] = x, ne[idx] = ne[k], ne[k] = idx++;}void remove(int k) { ne[k] = ne[ne[k]];} 双链表12345678910111213141516int e[N], l[N], r[N], idx;void init() { r[0] = 1, l[1] = 0, idx = 2;}void insert(int k, int x) { e[idx] = ...
AcWing 基础算法章节笔记
AcWing 基础算法章节笔记基础算法这一章的关键,不是把题一题一题硬背下来,而是把“题型 -> 模板 -> 复杂度”这条线打通。 本章核心模板快速排序1234567891011void quick_sort(vector<int>& q, int l, int r) { if (l >= r) return; int x = q[(l + r) >> 1], i = l - 1, j = r + 1; while (i < j) { do i++; while (q[i] < x); do j--; while (q[j] > x); if (i < j) swap(q[i], q[j]); } quick_sort(q, l, j); quick_sort(q, j + 1, r);} 归并排序与逆序对123456789101112131415161718long long merge_...
AcWing 模板总览与章节索引
AcWing 模板总览与章节索引这个页面按章节整理常见算法题型,目标是做到两件事: 章节划分清楚,方便查找 每个章节都能快速找到对应模板 使用说明建议把这个页面当成一个总索引: 学新章节时,先看这一章有哪些固定题型 刷题时,先定位题型,再回查模板 复习时,按章节逐个过模板 目录 基础算法 数据结构 搜索与图论 数学知识 动态规划 贪心与综合技巧 章节笔记直达: 基础算法章节笔记 数据结构章节笔记 搜索与图论章节笔记 数学知识章节笔记 动态规划章节笔记 贪心专题章节笔记 基础算法章节笔记:基础算法章节笔记 二分适用场景: 答案具有单调性 左右边界明确 需要找第一个满足条件的位置或最后一个满足条件的位置 模板关键词: check(mid) 左边界二分 右边界二分 推荐整理内容: 题型 对应模板 代表题 备注 整数二分 l, r, mid 边界收缩 待补充 最基础 浮点二分 精度控制 待补充 注意误差 二分答案 check(mid) 判定 待补充 最常见 双指针适用场景: 区间具有单调扩展性质 需要维护一个连续窗口 两个序列需...
AcWing 基础算法专题导航
AcWing 基础算法专题导航这篇文章是我整理的 AcWing 基础算法学习入口,用来配合在线题库、章节索引和模板合集一起使用。 这是什么这套内容的目标不是单纯刷题,而是把 题目分类、模板、典型题、复习路径 放在同一个体系里,方便: 初学时按章节推进 复习时按题型回查 卡题时快速定位对应模板 面试前做专题突击 适合谁 正在学基础算法与数据结构的同学 需要整理 AcWing 入门路线的人 想把“题目”和“模板”一一对应起来的人 如何使用1. 先按章节学,不要乱刷建议顺序: 基础算法 数据结构 搜索与图论 数学知识 动态规划 贪心与综合技巧 2. 每道题都对应到一个模板做题时不要只记答案,要先问自己两件事: 这题属于哪个章节、哪个小题型? 它最终落到哪个模板? 如果一道题做完之后还说不清它对应什么模板,那这题实际上还没有掌握。 3. 先看思路,再自己敲模板更推荐下面的使用方式: 先独立思考题意和做法 明确题型归属 对照模板查缺补漏 自己重新手敲一遍 最后做同类题巩固 4. 复习时按“章节 -> 模板 -> 题目”回看不要从零散题目开始复习,效率太低。更适...
新
测试测试 1import numpy as np 1+1=2正常使用使用$2^2-2=2$测试 2^2-1




