ACM-ICPC / OI 常考知识点体系整理
一、数学基础(数论 / Number Theory)
这是你刚刚那题所属模块。
1. 因子与约数
- 因子个数公式
- 完全平方数 → 因子个数为奇数
- 枚举/分解优化到 √n
2. 质数
3. 最大公约数 / 最小公倍数
- gcd(辗转相除法)
- lcm(a,b)=a*b/gcd(a,b)
4. 同余与取模
5. 快速幂
二、数据结构
1. 数组 / 模拟
2. 栈与队列
- 单调栈(Next Greater Element)
- 单调队列(滑动窗口最值)
3. 哈希
- HashMap / HashSet
- 字符串哈希(滚动哈希)
4. 堆
5. 并查集(Union Find)
6. 树状数组(BIT)
7. 线段树
三、图论
1. 图的存储
2. 图遍历
3. 最短路
- Dijkstra
- Bellman-Ford
- Floyd
4. 最小生成树
5. 拓扑排序
6. 强连通分量
四、动态规划(DP)
1. 线性DP
2. 背包问题
3. 区间DP
4. 状态压缩DP
五、贪心算法
六、字符串算法
1. 基础字符串
2. Trie树
3. 字符串哈希
七、搜索
1. DFS
2. BFS
3. A*
八、基础算法思想
九、常见题型分类
- 数论基础题(如你这题)
- 排序+贪心
- 图最短路
- DP最优解
- 区间维护问题
总结
👉 你刚才那道题属于: > 数论 - 因子性质 - 完全平方数问题