// poj题目分类
http//poj.org/
初期
基本算法
- 枚举 1753 2965
- 贪心1328 2109 2586
- 递归和分治法
- 递推
- 构造法 3295
- 模拟法 1068 2632 1573 2993 2996
图算法
- 图的深度优先遍历和广度优先遍历
- 最短路径算法dijkstra bellman-ford floyd heap+dijkstra 1860 3259 1062 2253 1125 2240
- 最小生成树算法prim kruskal 1789 2485 1258 3026
- 拓扑排序 1094
- 二分图的最大匹配 匈牙利算法 3041 3020
- 最大流的增广路算法KM算法 1459 3436
数据结构
- 串 1035 3080 1936
- 排序快排、归并排与逆序数有关、堆排 2388 2299
- 简单并查集的应用
- 哈希表和二分查找等高效查找法数的Hash 串的Hash 3349 3274 POJ2151 1840 2002 2503
- 哈夫曼树3253
- 堆
- trie树静态建树、动态建树 2513
简单搜索
- 深度优先搜索 2488 3083 3009 1321 2251
- 广度优先搜索3278 1426 3126 3087 3414
- 简单搜索技巧和剪枝2531 1416 2676 1129
动态规划
- 背包问题 1837 1276
- 型如下表的简单DP可参考lrj的书 page149
- E[j]=opt{D+w[i][j]} 3267 1836 1260 2533
- E[i][j]=opt{D[i-1][j]+x[i], D[i][j-1]+y[j] D[i-1][j-1]+z[i][j]} 最长公共子序列 3176 1080 1159
- C[i][j]=w[i][j]+opt{C[i][k-1]+C[k][j]} 最优二分检索树问题
数学
组合数学
- 加法原理和乘法原理
- 排列组合
- 递推关系3252 1850 1019 1942
数论
- 素数与整除问题
- 进制位
- 同余模运算2635 3292 1845 2115
计算方法
- 二分法求解单调函数相关知识 3273 3258 1905 3122
计算几何学
- 几何公式
- 叉积和点积的运用如线段相交的判定 点到线段的距离等 2031 1039
- 多边型的简单算法求面积和相关判定点在多边型内 多边型是否相交 1408 1584
- 凸包2187 1113
中级
基本算法
- C++的标准模版库的应用 3096 3007
- 较为复杂的模拟题的训练3393 1472 3371 1027 2706
图算法
- 差分约束系统的建立和求解 1201 2983
- 最小费用最大流2516 2195
- 双连通分量2942
- 强连通分支及其缩点 2186
- 图的割边和割点3352
- 最小割模型、网络流规约3308
数据结构
- 线段树 2528 2828 2777 2886 2750
- 静态二叉检索树 2482 2352
- 树状树组1195 3321
- RMQ 3264 3368
- 并查集的高级应用 1703 2492
- KMP算法 1961 2406
搜索
- 最优化剪枝和可行性剪枝
- 搜索的技巧和优化 3411 1724
- 记忆化搜索3373 1691
动态规划
- 较为复杂的动态规划如动态规划解特别的施行商问题等 1191 1054 3280 2029 2948 1925 3034
- 记录状态的动态规划 3254 2411 1185
- 树型动态规划2057 1947 2486 3140
数学
组合数学
- 容斥原理
- 抽屉原理
- 置换群与Polya定理1286 2409 3270 1026
- 递推关系和母函数
其他
- 高斯消元法2947 1487 2065 1166 1222
- 概率问题 3071 3440
- GCD、扩展的欧几里德中国剩余定理 3101
计算方法
- 0/1分数规划 2976
- 三分法求解单峰单谷的极值
- 矩阵法3150 3422 3070
- 迭代逼近3301
随机化算法
3318 2454
杂题
1870 3296 3286 1095
计算几何学
- 坐标离散化
- 扫描线算法例如求矩形的面积和周长并 常和线段树或堆一起使用 1765 1177 1151 3277 2280 3004
- 多边形的内核半平面交3130 3335
- 几何工具的综合应用 1819 1066 2043 3227 2165 3429
高级
基本算法要求
- 代码快速写成 精简但不失风格 2525 1684 1421 1048 2050 3306
- 保证正确性和高效性 3434
图算法
- 度限制最小生成树和第K最短路 1639
- 最短路 最小生成树 二分图 最大流问题的相关理论主要是模型建立和求解 3155 2112 1966 3281 1087 2289 3216 2446
- 最优比率生成树 2728
- 最小树形图3164
- 次小生成树
- 无向图、有向图的最小环
数据结构
- trie图的建立和应用 2778
- LCA和RMQ问题LCA最近公共祖先问题 有离线算法并查集+dfs 和 在线算法 RMQ+dfs 1330
- 双端队列和它的应用维护一个单调的队列 常常在动态规划中起到优化状态转移 的目的 2823
- 左偏树可合并堆
- 后缀树非常有用的数据结构 也是赛区考题的热点 3415 3294
搜索
- 较麻烦的搜索题目训练1069 3322 1475 1924 2049 3426
- 广搜的状态优化利用M进制数存储状态、转化为串用hash表判重、按位压缩存储 状态、双向广搜、A*算法 1768 1184 1872 1324 2046 1482
- 深搜的优化尽量用位运算、一定要加剪枝、函数参数尽可能少、层数不易过大 、可以考虑双向搜索或者是轮换搜索、IDA*算法 3131 2870 2286
动态规划
- 需要用数据结构优化的动态规划 2754 3378 3017
- 四边形不等式理论
- 较难的状态DP3133
数学
组合数学
- MoBius反演2888 2154
- 偏序关系理论
博奕论
- 极大极小过程3317 1085
- Nim问题
计算几何学
- 半平面求交3384 2540
- 可视图的建立2966
- 点集最小圆覆盖
- 对踵点2079
综合题
3109 1478 1462 2729 2048 3336 3315 2148 1263