ACM一期 基础训练计划
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
这个训练计划我也只是把我知道的知识点罗列出来而已.
其实acm还有很多方面的知识。
可能到acm生涯结束的时候还是无法把所有的知识都吃透
所以acm的知识能学多少算多少,知识重要的不是你知道的多,重要的是你能否熟练的运用他们!
题目注意事项:
zoj:/
grid:/
hdu:/
zquoj:也就是我们的oj
一.数据机构基础。
请自学完数据结构书:2,3,4,6,7,9.1,9.2.1 9.3 10 这几章,带*号可以暂时掠过,以后再看。然后自行完成oj DS开头的题目。
注意栈队列这些数据结构一般不用像书本那样写得那么严谨。在acm中,往往因为时间关系,一般写成简单的模式:请参考附件:栈与队列acm中的简单实现.txt 其它数据结构请自行简化。
二.其他数据结构
1.trie树
请看附件trie树的相关附件或到网上搜索。注意自己写好和简化模版。
Trie树最好使用静态分配实现!
poj 3630 hdu 1251
2.并查集
Hdu:1558 1811 1829 1198
3.图论专题:
简单的说下图怎么存储。
图通常分为邻接表和邻接矩阵两种方式储存。
请先移步到数据结构书祥看这两种实现方式。
邻接表:我们知道要动态分配内存。这种方式有时会导致效率低下。我们可以模拟一下动态分配内存,详见附件静态分配。
这部分图论可参考
/p-251720691.html
部分题目.这本书有讲解。
1.图的基本概念
poj:1659
2.图的遍历和活动问题
zoj:2110 1709 1649 2913 1060 2193 2412 1008 2165 1136 1361 1091 1083
poj:2935 1270 3687
3.树与图的生成树
zoj:1203 1542 1586 2158 1406 1372 1718 1914 2048
poj:1679 2421 1258 3026
4最短路径
zoj:1298 2750 1092 1721 1967 1952 2770 1508 1053 1655 1232 2008 1791 3088 3103 1942 2027 2797 1082 1221 1857 1260 1420 1455
poj:3268 3259 1192 3169
5可行遍性问题
zoj:1395 2016 2398 1130 1919
poj:2513
6.网络流问题
zoj:1734 2874 2314 1994 1157 1992 2587 2788 2404 1553
poj:1149 1273 2112 3469 1815 3422 2391 3436 2516
7.支配集覆盖集独立集问题
zoj:1654 1364 1140 2429 1516 1137 1059 1525
poj:3041
8.图的连通性问题
zoj:1119 2182 2588 1979 1311 2532 2470
poj:2942 3177 2762 2186 1236 3352 3694 3160 3592
9.平面图问题
zoj:2394 1084 2589
poj:1419
三.常用算法。//可与数据结构的题目交叉做。
做以下题目时,请参考附件:
Hdu课件
参考课本李文新老师的《程序设计导引及在线实践》.pdf。
1.简单数学:
高中程度的数学能力基本能解决。所以速度秒杀下面几道题目:
hdu:1049、1060、1061、1066
grid:2750 1657 2808 2801
2.递推题目:
考察的主要是数学的推理能力
hdu:
1290 1297 1438 1465 ~1466 1480 2013 2018 2041~2042
3.进制转换:
grid:2972 2973 2734 2735 2798 2765
4.简单的字符串处理:
grid:2742 2974 2744 2975 2743 2976 2818 2819 2820 2804 2797 2799
5.模拟题:
主要考察的是你的编码能力,题目做出来后,可以去网上找这道题目的相关代码,参考别人的做法简化自己的代码。
grid:2733 2712 2964 2965 2966 2723 2967 2746 2950 2745
6.大整数:
涉及知识点:大整数加法,乘法,除法,减法
除法的实现相对来说比较难,可以掠过。大整数运算其实可以使用java来实现比较方便,有兴趣的同学,可以去网上搜下
另外里面有一道题涉及二进制快速幂,请参考附件二进制快速幂.doc
grid:2981 2980 2737 2706 2809 2738 2951
7.枚举:
简单点的枚举,就是用几个循环枚举每个数的每种情况,然后找出符合条件的,这种题目比赛时经常会出现,如果一心想着好的算法,而放弃这种暴力手段的话,有可能与水题失之交臂。
grid:2977 2692 2810 2811 2812 2739 2747 2813 1183
8.递归+搜索(二分搜索+ bfs+dfs)
grid:2753 2756 2694 1664 2816 2754 2817 2815 2749 2790
hdu:1010、1240、1241、1242 1072、1253 、1312、1372 (以上题目类似于1010)1238、1239、1015、1016 1401、1515、1548
poj:1064 2507 2002 3685 2503 2413(高精度)1826(并查集或dfs或dfs+二分法最好用并查集)
9.DP基础:
grid:2757 1661 2806 2979 2809 2795 1088 2733 2786 2792 2766
hdu:1003 、1466 、1087、1159、1176
1058、1069、2059、2084
10.贪心算法入门:
hdu:
1045 1050 1051 1052 1053 1054 2037 1076 1203 1204 1239 1579 1730 2285
12.计算几何基础请参考算法导论计算几何里面的相关内容。
一。点,线,面,形基本关系,点积叉积的理解
POJ 2318 TOYS(推荐)
/JudgeOnline/problem?id=2318
POJ 2398 Toy Storage(推荐)
/JudgeOnline/problem?id=2398
一个矩形,有被若干直线分成N个格子,给出一个点的坐标,问你该点位于哪个点中。
知识点:其实就是点在凸四边形内的判断,若利用叉积的性质,可以二分求解。