模板目录

3. 专题和知识点详细内容

​ 下面用表格的形式列出了竞赛中用到的算法知识点,约300个。

​ 本文作者估计,铜牌和银牌需要约200个知识点,其他的是金牌。

​ **注:**表格中的“典型题”,不一定是模板题,只作为进一步了解的参考。

3.1. 数学Mathematics

3.1.1数论Number Theory

知识点英文典型题说明
GCD、LCM1
素数判断Primality testspoj 2689判断某个数是否为素数计算区间内素数的个数1
素数生成Prime Number Generationhdu4548筛Sieve分段筛Segmented Sieve欧拉筛法1
分解质因数Integer factorizationhdu62871
欧拉定理Euler Totient Theoremhdu13951
费马小定理Fermat’s Theoremhdu4704逆元1
扩展欧几里得算法Extended Euclidhdu1576求ax+by=gcd的解以及逆元1
逆元Inverse扩展欧几里得、欧拉函数1
随机素数测试和大数分解poj 18111
高斯消元Gaussian eliminationhdu5755浮点数高斯消元求方程组的解3
模线性方程组hdu37971
佩尔方程Pell’s equationhdu 32923
整数拆分Integer Factorizationhdu 4651/46581
求AB的约数之和对MOD去模sum of divisorspoj 18451
大步小步算法Baby-Step Giant-StepPOJ 2417,32431
斐波那契数列取模Periodicity modulo phdu1021循环节1
原根primitive rootHDU49921
快速数论变换NTTHDU4656卷积取模3
线性丢番图方程Linear Diophantine Equations1
模运算Modulus Arithmetic1
卢卡斯定理Lucas Theoremhdu52261
中国剩余定理Chinese Remainder Theoremhdu34301
威尔逊定理Wilson Theoremhdu53911
米勒-罗宾随机素性测试Miller - Rabin Primality Testinghdu49101
完全数Perfect Numbershdu26831
哥德巴赫猜想Goldbach Conjecturehdu1397-1
连分数Continued fractionhdu41883

3.1.2概率Probability

知识点英文典型题说明
基本概率和条件概率Basic Probability and Conditional Probabilityhdu1204
随机变量Random Variableshdu1145
概率生成函数Probability Generating Functions
期望Expectationhdu5984
概率分布Probability Distributionpoj3716Binomial, Poisson, Normal,Bernoulli

3.1.3组合数学Counting

特殊计数Special Numbers [Stirling,Fibonacci,Catalan, Eulerian, Harmonic, Bernoulli]

知识点英文典型题说明
容斥原理鸽巢原理乘法原理Inclusion ExclusionPigeonhole principlehdu2204hdu1205hdu55251
stirling数hdu43721
Catalan数hdu56731
斐波拉契数hdu13161
Polya计数Polya Countinghdu35472
莫比乌斯反演MoBius inversionhdu53822
母函数Generating functionhdu2082/2065普通型、指数型3
调和级数harmonic numberpoj1003-1
幻方Magic Squarehdu 3927
N皇后hdu2553

3.1.4线性代数Linear Algebra

知识点英文典型题说明
矩阵的加减Addition And Subtraction Of Matriceshdu3521
矩阵变换Matrix Transformationshdu5671
矩阵的行列式、秩和逆Determinant , Rank and Inverse Of Matrixhdu5852
线性方程组的求解Solving System Of Linear Algeraic Equations
矩阵求幂Matrix Exponentiationhdu1757
特征值和特征向量Eigenvalues And Eigen vector
多项式的根Roots of a polynomialhdu1296
拉格朗日插值Lagrange Interpolationhdu6253
线性基hdu3949

3.1.5组合游戏(博弈论)Game Theory

知识点英文典型题说明
尼姆游戏Nim gamehdu2176
P-position、N-position
图游戏与SG函数sprague-Grundy 函数hdu3023
Hackenbush游戏hdu3197
威佐夫游戏Wythoff’s gamehdu2177

3.1.6群论Group Theory

知识点英文典型题说明
伯恩赛德引理Burnside’s lemmahdu4633
波利亚定理Polya’s Theoremhdu3547
拉格朗日定理

3.1.7 高精度

知识点英文典型题说明
大数加减乘除Hdu1042 HDU 1134 求卡特兰数
大数取模
高精度阶乘
高精度幂
高精度进制转换
FFT高精度乘法
java高精度

3.1.8 计算方法

知识点英文典型题说明
快速傅立叶变换FFThdu 4609
迭代法hdu3809
三分法hdu2899
定积分计算hdu1071
自适应simpson积分hdu 1724

3.2. 数据结构Data Structures

知识点英文典型题说明
数组Arrays
链表Linked List
StacksHdu1237手动栈
队列Queues
优先队列、双端队列Hdu1896
第k大元素Hdu4006
块状链表Hdu5193
HeapHdu1280
哈希表、哈希数组Hash TablesHdu1880
逆序对Hdu4911
跳跃表Skip ListHdu5266
并查集Disjoint-SetHdu1182
字典树Triehdu2072
线段树Segment Tree一维Hdu1540二维Poj1195一维、二维
周长并Hdu1828
LCAHdu2586
莫队算法hdu5145解决一类静态,离线区间查询问题
树状数组Binary Index TreeHdu2852N维树状数组Hdu3584
Trees
二叉树Binary Treehdu5444
平衡二叉树balanced binary treepoj 2828
二叉排序树Hdu3791
二叉搜索树Binary Search TreeHdu3791
Treap树Hdu4099Poj 2985静态建树、动态建树
伸展树splay treeHDU1890、3726、4453poj 2892
笛卡尔树Hdu4095
划分树hdu44717查询区间第 k 大
表达式树hdu1805
RMQRange Minimum/Maximum QueryHdu3183一维RMQ、二维RMQ
树链剖分hdu3966点权、边权
动态树LCT(link-cut-tree)hdu5002
左偏堆Hdu1512
可并堆Hdu1512
主席树ZOJ 2112查询区间多少个不同的数、静态区间第 k 大POJ2104、树上路径点权第 k 大、动态第 k 大
KD 树K-demension treeHDU4347K 近邻,模板题,求出最近的 K 个点
替罪羊树ScapeGoat Treepoj1442
动态 KD 树hdu5992结合了 KD 树和替罪羊树
树套树hdu5412

3.3. 搜索Searching与排序

3.3.1搜索

知识点英文典型题说明
子集生成hdu1584
线性搜索Linear Search
折半检索Binary Search
三分搜索Ternary Searchhdu2899
BFS
双向广搜Hdu1401
广搜的状态优化Hdu5025
A*算法hdu1043
DFS
回溯、剪枝Hdu1010
深搜的优化Hdu2084
记忆化搜索Hdu2602
IDA*算法hdu4127
位运算Hdu3711
按位压缩存储状态Hdu5025
极大极小hdu3683
利用M进制数存储状态Hdu4267
舞蹈链Dancing LinksPoj2676

3.3.2. 排序Sorting

知识点英文典型题说明
选择排序Selection Sort
冒泡排序Bubble Sort
插入排序Insertion Sort
归并排序Merge Sort
快速排序Quick Sort
Quick Select脱胎于快排
堆排序Heap Sorthdu1280
计数排序Counting Sorthdu1425
基数排序Radix SortHdu1280
桶排序Uva340

3.4.贪心 Greedy

知识点英文典型题说明
常见问题
哈夫曼树Hdu2527
模拟退火算法hdu3007结合概率
prim算法hdu1102
kruskal算法hdu1863
Dijkstra算法hdu2066

3.5. 分治Divide & Conquer

知识点英文典型题说明
最近点对Closest Pair Pointshdu1007
归并排序Merge Sort
快速排序Quick Sort
CDQ分治hdu4456、4742二维偏序问题三维偏序问题

3.6. 动态规划

3.6.1 经典问题Dynamic Programming Classical Problems

知识点英文典型题说明
编辑距离Edit Distancehdu4323
扔鸡蛋问题Egg Dropping Puzzlepoj3783
整数背包Integer KnapsackHdu2602
最大独立集Largest Independent Sethdu2458
最长公共子序列Longest Common Subsequencehdu1243
最长公共递增子序列Hdu1423
最长公共子串Longest Common Substringhdu1238
最长上升子序列Longest Increasing Subsequencehdu1257
最长回文子序列Longest Palindromic Subsequencehdu4745
最长回文子串Longest Palindromic Substringhdu3294
最长不重复子字符串Longest Substring Without Repeating Characterhdu2668
矩阵链乘Matrix Chain Multiplicationhdu4686
最大正方形子矩阵Max Size Square Submatrixhdu4846
最长链对Maximum Length Chain Pairs
最大递增子序列和Maximum Sum Increasing Subsequencehdu1087
最优二叉搜索树Optimal Binary Search Treehdu3791
回文分割Palindrome Partition Problemhdu3613
Set Partition Problem
Subset Sum
Word Wrap Problem
最大两段子段和Hdu2845
最大M子段和Hdu1024
最长有序子序列Hdu1160

3.6.2 高级DP 技术Dynamic Programming Advanced Techniques

知识点英文典型题说明
数位dpHdu2089
插头dpUral1519、hdu4285
树型dpHdu1520
区间dpHdu4293
平行四边形优化Poj1160
状压DPhdu6321
概率DPhdu3276
斯坦那树hdu4085

3.7. 字符串 string algorithm

知识点英文典型题说明
kmpPoj3167、3690
扩展kmpHdu4763
后缀数组Suffix arrayHdu1403、5769
后缀树Suffix treehdu3518
AC自动机Aho-Corasickhdu2222、4787
后缀自动机hdu5558
回文串Hdu4632Manacher
确定有穷自动机DFAHdu3065
字符串hashhdu4622

3.8. 图论Graphs

3.8.1 图的存储Graph Representation

知识点英文典型题说明
邻接矩阵Adjacency Matrix
关联矩阵Incidence Matrix
邻接表Adjacency List
链式前向星

3.8.2 图的类型Graph Types

知识点英文典型题说明
有向Directed
无向Undirected
有权Weighted
无权Unweighted
有向无环图Directed Acyclic Graph(DAG)
哈密顿图Hamiltonhdu5424
欧拉图Eulerhdu5883

3.8.3 基于DFS的图算法 DFS & It’s Application

知识点英文典型题说明
判圈Cycle Detection
割点割边Articulation Points
Bridgeshdu4738
边双连通分量Biconnectivity in Graphhdu4612
点双连通分量hdu3394
强连通分量Strongly Connected Component
有向图的强连通分量Tarjan算法Kosaraju算法hdu5934hdu1296
拓扑排序Topological Sortinghdu2647
二分图判定Bipartite Checkinghdu4751
2-SAThdu4115

3.8.4基于BFS的图算法BFS & It’s Application

知识点英文典型题说明
最短路径Shortest Path (No. Of Edges)无权图
二分图判定Bipartite Checking
连通分量Connected Components

3.8.5最小生成树Minimum Spanning Tree

知识点英文典型题说明
Prim’s Algorithm
Kruskal Algorithm
次小生成树hdu4081
曼哈顿最小生成树poj3241

3.8.6单源最短路算法Single Source Shortest-Path

知识点英文典型题说明
Dijkstra(堆优化)hdu2860
Bellman Fordhdu1317
SPFAhdu2112
差分约束系统hdu1531

3.8.7多源最短路All pair Shortest Path

知识点英文典型题说明
FloydFloyd Warshall’s Algorithmhdu4114

3.8.8欧拉路Euler Tour(有向图、无向图、混合图)

3.8.9最大流Flow

知识点英文典型题说明
Ford-Fulkersonhdu3549
Edmonds-Karphdu1532
最小费用最大流Min Cost - Max Flowhdu3488SPFA 版费用流
最小割Stoer Wagner Min-Cutpoj2914
ISAPhdu3549
dinicDinic’s Algorithmhdu4975

3.8.10 其他问题

知识点英文典型题说明
最小树形图hdu2121
二分图匹配Hdu3729无权图:匈牙利算法带权图:KM算法、Hopcroft-Karp 算法
二分图多重匹配hdu3605
最小路径覆盖问题hdu1511
LCAhdu2586dfs+ST 在线算法、离线 Tarjan 算法、LCA 倍增法
树分治点分治HDU5016点分治HDU4918链分治HDU5039
生成树计数hdu4305

3.9. 计算几何Computational Geometry

知识点英文典型题说明
二维基本模板点和向量;点积;叉积;点和线的关系;多边形;**三角形**内心、外心、重心、垂心;费马点;面积、周长、体积公式;判点在多边形、多面体内外;三角剖分;梯形剖分;多边形重心、多边形切割;多面体体积;坐标旋转
凸包hdu1392
最近点对hdu4631
旋转卡壳hdu2202对踵点
半平面交hdu5462
最小圆覆盖hdu3007
三维模板三维点和向量、三维点积、三维叉积
最小球覆盖poj2069
三维凸包hdu4266

3.10. STL

​ vector、stack、queue、list、set、map、sort()等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Best KeyBoard

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值