ACM基础算法入门及题目列表

对于刚进入大学的计算机类同学来说,算法与程序设计竞赛算是不错的选择,因为我们每天都在解决问题,锻炼着解决问题的能力。

这里以TZOJ题目为例,如果为其他平台题目我会标注出来,同时我的主页也欢迎大家去访问,探索新平台去提高自己

ACM竞赛随机性会比较大,所以新手请掌握好基础,基础不牢,地动山摇(大一上)

  1. C语言题 包括TZOJ1452在内的60道C语言实验题,可以利用OJ的搜索,由于这种题目比较多,就不一一列举
  2. 暴力枚举 3449 5125 4604 2626
  3. 递归 1483 
  4. 模拟 1093 3715 3726 3727 4391
  5. 构造 这种题往往在CF中会遇到 刷题集点这里,就是都是英文题

TZOJ200题以后可以尝试着去刷一些简单的算法(大一上以及大一下)

  1. 前缀后缀和 1532 4262
  2. 二分 5629 1597 1041
  3. 排序(归并排序) 2452
  4. 贪心 1332 5059 1004 3110 4493
  5. dfs 2777 4408 3104 3360
  6. bfs 3533 1335 1748 3031

TZOJ300题以后可以尝试着去刷一些简单的算法和数据结构,要参加天梯赛就得刷会了(大一下以及大二上)

  1. 并查集
  2. 最短路(Floyd Dijkstra Bellman-Ford)
  3. 最小生成树(Kruskal Prim)
  4. stl的应用
  5. 拓扑排序

TZOJ500题左右就可以入门算法了,在省赛中往往用得到

  1. 背包 台州学院基础算法学习之背包 
  2. 容斥 
  3. 图论基础 
  4. 凸包 
  5. 树状数组 
  6. 字典树 
  7. 矩阵快速幂 

之后大概每个队伍都要分方向了,建议可以打打CF atcoder Wannafly hiho

队伍中有一个人尝试下51nod 的三级算法题或五级算法题

内容往往不是割裂的,而是组合的

图论方向

  1. 二分图
  2. 网络流
  3. 强连通分量
  4. 割边和割点
  5. 树的直径
  6. LCA
  7. 差分约束
  8. 树分块

动态规划方向

  1. 最长上升(不下降等等)子序列
  2. 区间DP
  3. 环形DP
  4. 状压DP
  5. 概率DP
  6. 树形DP
  7. 单调队列优化DP

数据结构方向

  1. 线段树
  2. 莫队

字符串方向

  1. KMP
  2. HSAH
  3. AC自动机
  4. SA(后缀数组)
  5. SAM (后缀自动机)

组合数学方向

  1. 母函数
  2. 线性求逆元
  3. 组合数学上的dp累加

计算几何方向

  1. 扫描线 Color it
  2. 线段相交 5625
  3. 半平面交 
  4. 随机化算法 

数论方向

  1. 费马小定理
  2. 扩展欧几里得
  3. 高斯消元
  4. 欧拉函数
  5. 莫比乌斯函数
  6. 积性函数
  7. FFT(快速傅里叶变换) 5482 Gym - 101667H  CodeForces - 528D 
  8. Miller-Rabin 素数检测 2646 4383
  9. RSA等加密算法 1196

猜你喜欢

转载自www.cnblogs.com/BobHuang/p/10720172.html