天天看点

学习计划ACM集训计划

ACM集训计划

假设已有C/C++/JAVA中任何一门程序设计语言基础,熟练掌握基本语法。

Step1: 入门hdu——water~,刷完http://acm.hdu.edu.cn/problemclass.php?id=74

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各种排序方法的比较

数据结构对应SDUTOJ题目 http://acm.sdut.edu.cn  Online Judge

数据结构实验 必做题目
线性表 顺序表 (01)1130
线性链表 (02)1138 (03)1139 (04)2116 (05)2117  (06)2118 (07)2119 (08)2120 (09)2121  (10)2122 (11) 2053
循环链表 (12)1197 (13)2056
双向链表 (14)2504
多项式的表示及相加 (15)1482
栈和队列 进制转换 (16)1252 (17)2131
括号匹配 (18)2134
行编辑程序 (19)1479
迷宫求解 (20)2449
表达式求值 (21)2132(22)2133(23)2484
双向队列 (24)1466
银行管理 (25)2087
停车场问题 (26)2088
排队买饭 (27)2135
字符串 字符串比较 (28)1333
字符串排序 (29)1334
字符串连接 (30)2124
字符串匹配 (31)2125
KMP算法 (32)2463
字符串哈希 (33)1500
树和二叉树 二叉树历遍 (34)2137
树的计数 (35)2136
赫夫曼树 (36)2127
二叉排序树 (37)2128 (38)2482
统计生成树个数 (39)2129
邻接矩阵表示法 (40)2141
邻接表 (41)2142
深度优先搜索 (42)2107
广度优先搜索 (43)1028
无向图的连通分量个数 (44)1488
有向图的强连通分量 (45)2506
最小生成树 (46)2144
拓扑排序 (47)2140
关键路径 (48)2498
最短路径 (49)2413
查找 顺序查找 (50)2040
二分查找 (51)2039
哈希表 (52)2123
内部排序 冒泡排序 (53)1196
选择排序 (54)1582
快速排序 (55)2019
归并排序 (56)2019
堆排序 (57)2019
插入排序 (58)1582
基数排序 (59)1591

Step3: 正式集训

集训第一天——POJ纯水题 Like the following~~~

2017 1218 2000 1046 1218 1003 1004 10051008 1013(枚举) 1207 1552 2105 2388 1316 2499 3006(筛法求素数)

正式集训计划:

第一阶段初级:第1周-第4周
项目 时间 必做题目
基本算法 枚举 第1周 (001)poj1753 (002)poj2965
贪心 (003)poj1328 (004)poj2109 (005)poj2586
分治法 (006)poj2524
递推 (007)poj2506
构造法 (008)poj3295
模拟法 (009)poj1068 (010)poj2632  (011)poj1573 (012)poj2993  (013)poj2996
图算法 图的深度优先遍历和广度优先遍历 第1周 (014)poj3278 (015)poj2049  (016)poj3083
最短路径算法 (017)poj1860 (018)poj3259 (019)poj1062 (020)poj2253 (023)poj1125 (024)poj2240
最小生成树算法 (025)poj1789 (026)poj2485 (027)poj1258 (028)poj3026
拓扑排序 (029)poj1094 (030)poj3267 (031)poj3687
二分图的最大匹配 (032)poj3041 (033)poj3020
最大流的增广路算法 (034)poj1459 (035)poj3436
数据结构 第2周 (036)poj1035 (037)poj3080 (038)poj1936
排序 (039)poj2388 (040)poj2299
简单并查集的应用 (041)poj1611
哈希表和二分查找等高效查找法 (042)poj3349 (043)poj3274 (044)poj2151 (045)poj1840 (046)poj2002 (047)poj2503
哈夫曼树 (048)poj3253
堆,优先队列 (049)poj2442 (050)poj1442
trie树 (051)poj2513 (052)poj2418
简单搜索 深度优先搜索 第2周 (053)poj2488 (054)poj3083 (055)poj3009 (056)poj1321 (057)poj2251
广度优先搜索 (058)poj3278 (059)poj1426 (060)poj3126 (061)poj3087 (062)poj3414
简单搜索技巧和剪枝 (063)poj2531 (064)poj1416 (065)poj2676 (066)poj1129
动态规划 背包问题 第3周 (067)poj1837 (068)poj1276
型如下表的简单DP

(069)poj3267 (070)poj1836 (071)poj1260 (072)poj2533 (073)poj3176 (074)poj1080

(075)poj1159

数学 组合数学 第3周 (076)poj3252 (077)poj1850 (078)poj1019 (079)poj1942
数论 (080)poj2635 (081)poj3292 (082)poj1845 (083)poj2115
计算方法 (084)poj3273 (085)poj3258 (086)poj1905 (087)poj3122
计算几何学 几何公式 第4周 (088)poj1265(pick定理)
叉积和点积的运用 (089)poj2031 (090)poj1039
多边型的简单算法和相关判定 (091)poj1408 (092)poj1584
凸包 (093)poj2187 (094)poj1113
第二阶段中级:第4周-第9周
项目 时间 必做题目
基本算法 C++的标准模版库的应用 第4周 (095)poj3096 (096)poj3007
较为复杂的模拟题的训练 (097)poj3393 (098)poj1472 (099)poj3371 (100)poj1027 (101)poj2706
图算法 差分约束系统的建立和求解 第5周 (102)poj1201 (103)poj2983 (104)poj3159 (105)poj1275 (106)poj1364
最小费用最大流 (107)poj2516 (108)poj2195 (109)poj3422
双连通分量 (110)poj2942 (111)poj3694
强连通分支及其缩点 (112)poj2186 (113)poj3592 (114)poj3114
图的割边和割点 (115)poj3352
最小割模型 (116)poj3308 (117)poj3155
KM算法(最大权/最小权) (118)poj2195 (119)poj2400 (120)poj3686
数据结构 线段树 第6周 (121)poj2528 (122)poj2828 (123)poj2777 (124)poj2886 (125)poj2750
静态二叉检索树,平衡树treap,splay (126)poj2482 (127)poj2352 (128)poj2892 (129)poj3468
树状树组 (130)poj1195 (131)poj3321
RMQ (132)poj3264 (133)poj3368
并查集的高级应用 (134)poj1703 (135)poj2492
KMP算法 (136)poj1961 (137)poj2406
搜索 最优化剪枝和可行性剪枝 第7周 (138)poj1699
搜索的技巧和优化 (139)poj3411 (140)poj1724
记忆化搜索 (141)poj3373 (142)poj1691
动态规划 较为复杂的动态规划 第7周 (143)poj1191 (144)poj1054 (145)poj3280 (146)poj2029 (147)poj2948 (148)poj1925 (149)poj3034
记录状态的动态规划 (150)poj3254 (151)poj2411 (152)poj1185
树型动态规划 (153)poj2057 (154)poj1947 (155)poj2486 (156)poj3140
数学

组合数学,polya定理

置换群

第8周 (157)poj1286 (158)poj2409 (159)poj3270 (160)poj1026
高斯消元法 (161)poj2947 (162)poj1487 (163)poj2065 (164)poj1166 (165)poj1222
概率问题 (166)poj3071 (167)poj3440
GCD、扩展的欧几里德 (168)poj1061 (169)poj2891 (170)poj3101 (171)poj2115
计算方法(矩阵、三分等) (172)poj2976 (173)poj3150 (174)poj3422 (175)poj3070 (176)poj3301
随机化算法 (177)poj3318 (178)poj2454
杂题 (179)poj1870 (180)poj3296 (181)poj3286 (182)poj1095
计算几何学 坐标离散化 第9周 (183)poj1151
扫描线算法 (184)poj1765 (185)poj1177 (186)poj1151 (187)poj3277 (188)poj2280 (189)poj3004
多边形的核 (190)poj3130 (191)poj3335
几何工具的综合应用 (192)poj1819 (193)poj1066 (194)poj2043 (195)poj3227 (196)poj2165 (197)poj3429
第三阶段高级:第10周-第18周
项目 时间 必做题目
基本算法 代码快速写成 第10周 (198)poj2525 (199)poj1684 (200)poj1421 (201)poj1048 (202)poj2050 (203)poj3306
保证正确性和高效性 (204)poj3434
图算法 度限制最小生成树和第K最短路,分数规划 第10-11周 (205)poj1639 (206)poj3621 (207)poj2976 (208)poj3255 (209)poj2513 (210)poj2449
最短路,最小生成树,二分图,最大流问题的相关理论 (211)poj3155 (212)poj2112 (213)poj1966 (214)poj3281 (215)poj1087 (216)poj2289 (217)poj3216 (218)poj2446
最优比率生成树 (219)poj2728(0/1分数规划应用)
最小树形图 (220)poj3164(朱-刘算法)
次小生成树 (221)poj1679(存在O(n^2)DP解法)
2-SAT问题 (222)poj3207 (223)poj3678 (224)poj3683 (225)poj3648 (226)poj2723 (227)poj2749
无向图、有向图的最小环 (228)poj1734(floyd扩展)
数据结构 trie图的建立和应用,DFA 第12周

(229)hdu2222 (230)poj2778

(231)poj3691

LCA和RMQ问题 (234)poj1330
双端队列和它的应用 (235)poj2823
左偏树 (236)poj3666 (237)poj3016
后缀树,后缀数组 (238)poj3415 (239)poj3294 (240)poj2774 (241)poj2758
搜索 较麻烦的搜索题目训练 第13周 (242)poj1069 (243)poj3322 (244)poj1475 (245)poj1924 (246)poj2049 (247)poj3426
广搜的状态优化 (248)poj1768 (249)poj1184 (250)poj1872 (251)poj1324 (252)poj2046 (253)poj1482
深搜的优化 (254)poj3131 (255)poj2870 (256)poj2286
动态规划 需要用数据结构优化的动态规划 第14-15周 (257)poj2754 (258)poj3378 (259)poj3017
四边形不等式理论、斜率优化 (260)poj1160 (261)poj1180 (262)poj3709
较难的状态DP、插头DP (263)poj3133 (264)poj1739 (265)poj2411 (266)poj1763
数学 组合数学 第15周 (267)poj2888 (268)poj2154
博奕论 (269)poj3317 (270)poj1085
计算几何 半平面求交 第16周 (271)poj3384 (272)poj2540
可视图的建立 (273)poj2966
点集最小圆覆盖 (274)zju1450
对踵点 (275)poj2079
综合题 第16-18周 (276)poj3109 (277)poj1478 (278)poj1462 (279)poj2729 (280)poj2048 (281)poj3336 (282)poj3315 (283)poj2148 (284)poj1263