首页 > 代码库 > 山东理工大学的训练计划
山东理工大学的训练计划
SDUT集训计划
假设已有C/C++/JAVA中任何一门程序设计语言基础,熟练掌握基本语法。
Step1: 入门hdu——water~,刷完
Step2: 数据结构——课本算法代码熟敲。
数据结构需要掌握的内容(数据结构C语言版 严蔚敏|吴伟民):
第1章 绪论
算法和算法分析(时间复杂度分析和空间复杂度分析)
第2章 线性表
2.1线性表的类型定义
2.2线性表的顺序表示和实现
2.3线性表的链式表示和实现(注意掌握循环链表和双向链表)
第3章 栈和队列
3.1栈的定义、表示和实现
3.2栈的应用举例
3.4队列的定义、表示和实现(注意掌握循环队列,以及循环队列的数组实现)
第4章 串
掌握串在C语言中的表示方法、常用字符串函数
掌握简单的模式匹配算法
第6章 树和二叉树
6.1树的定义和基本术语
6.2二叉树
6.2.1二叉树的定义
6.2.2二叉树的性质(重点掌握)
6.2.3二叉树的存储结构
6.3 掌握二叉树的遍历(先序、中序、后序)
6.4树和森林
树的存储结构
森林与二叉树的转换(左孩子右兄弟法)
树和森林的遍历
6.6赫夫曼树及其应用
6.6.1最优二叉树(赫夫曼树)
6.6.2赫夫曼编码
第7章 图
7.1图的定义和术语
7.2图的存储结构
7.2.1数组表示法
7.2.2邻接表
7.3图的遍历
7.3.1深度优先搜索
7.3.2广度优先搜索
7.4图的连通性问题
7.4.1无向图的连通分量和生成树
7.4.3最小生成树算法(prim && kruskal)
7.5有向无环图及其应用
7.5.1拓扑排序
7.6最短路径
7.6.1单源最短路径问题(dijkstra算法)
7.6.2每一对顶点之间的最短路径(floyd算法)
第9章 查找
9.1 掌握有序表的二分查找算法
9.3掌握哈希表的思想及简单的hash算法(如取模法hash)
第10章 内部排序
10.1概述
10.2插入排序(掌握直接插入排序)
10.3快速排序(重点掌握)
10.4选择排序
10.4.1简单选择排序
10.4.2树形选择排序
10.4.3堆排序
10.5归并排序(重点掌握)
10.7各种排序方法的比较
集训第一天——POJ纯水题 = =:
Like the following~~~
2017 1218 2000 1046 1218 1003 1004 1005 1008 1013(枚举) 1207 1552 2105 2388 1316 2499 3006(a)(筛法求素数)
正式集训计划:
第一阶段 初级:第1周-第4周 | |||
项目 | 时间 | 必做题目 | |
基本算法 | 枚举 | 第1周 | poj1753,hdu 2209 poj2965 |
贪心 | poj1328,poj2109(a),poj2586(a) | ||
分治法 | poj2524 | ||
递推 | poj2506 | ||
构造法 | poj3295 | ||
模拟法 | poj1068,poj2632,poj1573,poj2993,poj2996 | ||
图算法 | 图的深度优先遍历和广度优先遍历 | 第1周 | poj3278, poj2049, poj3083 |
最短路径算法 | poj1860,poj3259,poj1062,poj2253,poj1125,poj2240 | ||
最小生成树算法 | poj1789,poj2485,poj1258,poj3026 | ||
拓扑排序 | poj1094, poj3267,poj3687 | ||
二分图的最大匹配 | poj3041,poj3020 | ||
最大流的增广路算法 | poj1459,poj3436 | ||
数据结构 | 串 | 第2周 | poj1035,poj3080,poj1936 |
排序 | poj2388,poj2299 | ||
简单并查集的应用 | poj1611 | ||
哈希表和二分查找等高效查找法 | poj3349,poj3274,POJ2151,poj1840,poj2002,poj2503 | ||
哈夫曼树 | poj3253 | ||
堆,优先队列 | poj2442, poj1442 | ||
trie树 | poj2513, poj2418 | ||
简单搜索 | 深度优先搜索 | 第2周 | poj2488,poj3083,poj3009,poj1321,poj2251 |
广度优先搜索 | poj3278,poj1426,poj3126,poj3087.poj3414 | ||
简单搜索技巧和剪枝 | poj2531,poj1416,poj2676,poj1129 | ||
动态规划 | 背包问题 | 第3周 | poj1837,poj1276 |
型如下表的简单DP | poj3267,poj1836,poj1260,poj2533,poj3176,poj1080,poj1159 | ||
数学 | 组合数学 | 第3周 | POJ3252,poj1850,poj1019,poj1942 |
数论 | poj2635, poj3292,poj1845,poj2115 | ||
计算方法 | poj3273,poj3258,poj1905,poj3122 | ||
计算几何学 | 几何公式 | 第4周 | poj1265(pick定理) |
叉积和点积的运用 | poj2031,poj1039 | ||
多边型的简单算法和相关判定 | poj1408,poj1584 | ||
凸包 | poj2187,poj1113 | ||
第二阶段 中级:第4周-第9周 | |||
项目 | 时间 | 必做题目 | |
基本算法 | C++的标准模版库的应用 | 第4周 | poj3096,poj3007 |
较为复杂的模拟题的训练 | poj3393,poj1472,poj3371,poj1027,poj2706 | ||
图算法 | 差分约束系统的建立和求解 | 第5周 | poj1201,poj2983, poj3159 poj1275, poj1364 |
最小费用最大流 | poj2516, poj2195, poj3422 | ||
双连通分量 | poj2942,poj3694 | ||
强连通分支及其缩点 | poj2186, poj3592, poj3114 | ||
图的割边和割点 | poj3352 | ||
最小割模型 | poj3308, poj3155(偏难) | ||
| KM算法(最大权/最小权) |
| poj2195, poj2400, poj3686 |
数据结构 | 线段树 | 第6周 | poj2528,poj2828,poj2777,poj2886,poj2750 |
静态二叉检索树,平衡树treap,splay | poj2482,poj2352, poj2892 poj3468, | ||
树状树组 | poj1195,poj3321 | ||
RMQ | poj3264,poj3368 | ||
并查集的高级应用 | poj1703,2492 | ||
KMP算法 | poj1961,poj2406 | ||
搜索 | 最优化剪枝和可行性剪枝 | 第7周 | poj1699 |
搜索的技巧和优化 | poj3411,poj1724 | ||
记忆化搜索 | poj3373,poj1691 | ||
动态规划 | 较为复杂的动态规划 | 第7周 | poj1191,poj1054,poj3280,poj2029,poj2948,poj1925,poj3034 |
记录状态的动态规划 | poj3254,poj2411,poj1185 | ||
树型动态规划 | poj2057,poj1947,poj2486,poj3140 | ||
数学 | 组合数学,polya定理,置换群 | 第8周 | poj1286,poj2409,poj3270,poj1026 |
高斯消元法 | poj2947,poj1487, poj2065,poj1166,poj1222 | ||
概率问题 | poj3071,poj3440 | ||
GCD、扩展的欧几里德 | poj1061, poj2891,poj3101 poj2115 | ||
计算方法(矩阵、三分等) | poj2976,poj3150,poj3422,poj3070, poj3301 | ||
随机化算法 | poj3318,poj2454 | ||
杂题 | poj1870,poj3296,poj3286,poj1095 | ||
计算几何学 | 坐标离散化 | 第9周 | poj1151 |
扫描线算法 | poj1765,poj1177,poj1151,poj3277,poj2280,poj3004 | ||
多边形的核 | poj3130,poj3335 | ||
几何工具的综合应用 | poj1819,poj1066,poj2043,poj3227,poj2165,poj3429 | ||
第三阶段 高级:第10周-第18周 | |||
项目 | 时间 | 必做题目 | |
基本算法 | 代码快速写成 | 第10周 | poj2525,poj1684,poj1421,poj1048,poj2050,poj3306 |
保证正确性和高效性 | poj3434 | ||
图算法 | 度限制最小生成树和第K最短路,分数规划 | 第10-11周 | poj1639, poj3621, poj2976 poj3255,poj2513,poj2449 |
最短路,最小生成树,二分图,最大流问题的相关理论 | poj3155,poj2112,poj1966,poj3281,poj1087,poj2289,poj3216,poj2446 | ||
最优比率生成树 | poj2728(0/1分数规划应用) | ||
最小树形图 | poj3164(朱-刘算法) | ||
次小生成树 | poj1679(存在O(n^2)的DP解法) | ||
2-SAT问题 | poj3207, poj3678, poj3683 poj3648, poj2723, poj2749 | ||
无向图、有向图的最小环 | poj1734(floyd扩展) | ||
数据结构 | trie图的建立和应用,DFA | 第12周 | hdu2222 poj2778, poj3691 |
LCA和RMQ问题 | poj1330 | ||
双端队列和它的应用 | poj2823 | ||
左偏树 | poj3666,poj3016 | ||
后缀树,后缀数组 | poj3415,poj3294, poj2774 poj2758 | ||
搜索 | 较麻烦的搜索题目训练 | 第13周 | poj1069,poj3322,poj1475,poj1924,poj2049,poj3426 |
广搜的状态优化 | poj1768,poj1184,poj1872,poj1324,poj2046,poj1482 | ||
深搜的优化 | poj3131,poj2870,poj2286 | ||
动态规划 | 需要用数据结构优化的动态规划 | 第14-15周 | poj2754,poj3378,poj3017 |
四边形不等式理论、斜率优化 | poj1160,poj1180,poj3709 | ||
较难的状态DP、插头DP | poj3133,poj1739,poj2411、poj1763 | ||
数学 | 组合数学 | 第15周 | poj2888,poj2154 |
博奕论 | poj3317,poj1085 | ||
计算几何学 | 半平面求交 | 第16周 | poj3384,poj2540 |
可视图的建立 | poj2966 | ||
点集最小圆覆盖 | zju1450 | ||
对踵点 | poj2079 | ||
综合题 |
| 第16-18周 | poj3109,poj1478,poj1462,poj2729,poj2048,poj3336,poj3315,poj2148,poj1263 |