ACM训练大纲

1. 算法总结及推荐题目

1.1 C++ STL

? STL容器: set, map, vector, priority_queue, queue, stack, deque, bitset
? STL算法: sort, unique, nth_element, reverse, rotate, next_permution, find, for_each, count, lower_bound, max, swap, random_shuffle

1.2 基本算法

? 枚举: poj1753, poj2965, zoj1716, zoj3356, ural1010
? 贪心: poj1328, poj2109, poj2586, ural1303, sgu195, sgu171
? 递归与分治: ural1181, poj1579, poj1845, poj3714
? 构造: poj3922, poj1092, sgu121
? 模拟: poj3125, poj1068, poj2993, ural1007
? 排序: ural1082, poj2092, poj1694
? KMP 算法: poj2406
? 扩展KMP: poj3376, poj1699
? 二分法: poj1905, poj2002
? 三分法: hdu3400, hdu2298
? 矩阵乘法: zoj2105, zoj3289
? 离散化: ural1019, sgu177
? 快速傅立叶变换: poj2821

? 环状字符串最小表示: poj1509

1.3 图论

? 深度优先遍历: poj2488
? 宽度优先遍历: poj3620, poj2251
? 最短路: poj1847, poj1062
? 最小生成树: zoj1914
? 拓扑排序: zoj2193, zoj1060
? 二分图最大匹配: poj1469
? 二分图的最大权匹配: ural1076
? 稳定婚配问题: poj3487
? 最大流与最小割: poj1459
? 带下界的最大流: poj2396
? 最小费用最大流: poj2159
? 差分约束系统: poj1275
? 双连通分量: zoj2588
? 强连通分量: zoj2470, poj2186
? 割边及割点: poj3352, poj3177
? 度限制生成树: poj1638, hdu3070
? K 短路: poj2449, sgu145
? 最近公共祖先: poj1330
? 最优比率生成树: poj2728
? 次小生成树: poj1679
? 最小树形图: poj3164
? 欧拉回路与路径: poj1386, poj2337
? 哈密顿回路: sgu122
? 旅行商问题: poj2288
? 极大团搜索: poj2989
? 弦图的判定与应用: zoj1015

? 任意图的最大匹配: ural1099

1.4 数据结构

? 栈与队列: poj2559
? 并查集: poj1611, poj1182
? 哈希表: poj1840, poj1186
? 优先队列: poj1862, poj3253
? 可合并堆: zoj2334
? 字母树及AC 自动机: zoj3430, zoj3228
? 线段树: zoj3317, zoj1610
? 树状数组: poj2299, poj2352
? 倍增表(RMQ): poj3368, poj2452
? 平衡二叉树: poj2892, poj2418, poj3580
? 后缀数组: poj2774, poj3294
? KD 树: spoj2835, poj2528
? 树链剖分: poj3237, spoj2666, spoj2798
? 树的分治算法: poj2114, poj1987

? 动态树: hdu2475, hdu3601, hdu4010

1.5 搜索

? 简单技巧与剪枝: poj1033, poj3009
? 最优化与可行性剪枝: poj1011, poj1190
? 记忆化搜索: poj1191, poj1088
? 迭代加深: poj2286, poj2032
? A 搜索: hdu2467, poj1077
? Dancing Link: poj3074, hdu4069
? 折半搜索: zoj3631
? 双向广搜: poj1198, poj1915

1.6 动态规划

? 资源分配问题: poj3624, poj2063
? 区间划分问题: poj3280
? 状态压缩问题: poj1185
? 树形DP: poj1463, poj3345
? 数据结构优化DP: poj2374, poj2355
? 四边形不等式: poj1160
? 队列优化: zoj3399
? 插头表示的状态压缩DP: poj1739
? 最小表示法的状态压缩DP: spoj2159

? 数位DP: hdu3555, sgu258, sgu390

1.7 数学

? 排列组合: poj1850, poj3252
? Lucas 定理: poj3219
? 素数测试与筛法: poj2191, poj1811
? 大数分解的快速算法: poj1142
? 进位制: poj2798, poj1702
? 同余模运算: poj1006, poj2115
? 容斥原理: poj3904, poj1173
? 置换群与Burnside 引理: poj2888
? 递推关系与母函数: poj3734
? 高斯消元: poj1681, poj1222
? 概率与统计: poj2151, poj1021
? 扩展欧几里得算法: poj2891, poj1061
? 中国剩余定理: poj1006, zoj3538
? 离散对数与离散根: sgu261
? 拉格朗日插值: uva4209
? 迭代逼近: poj2868, poj3933
? 莫比乌斯反演: poj2154
? 博弈论与SG 函数: poj2960, poj2311
? 偏序论与格: poj1065, poj3636

1.8 计算几何

? 点积与叉积: zoj1010
? 线段相交: zoj1648
? 简单多边形的面积: poj1654
? 点到线段的最近最远距离: ural1348
? 凸包: poj1113
? 对锺点: poj2187
? 圆与点的切线: poj1375
? 圆与直线的交: poj1263
? 圆与圆的交: poj2564
? 圆与多边形的并与交: poj3675
? 点在多边形内: poj2398
? 半平面交: poj1474, poj2540
? 最小圆覆盖: zoj1450, spoj145
? 三维凸包: poj3528
? 三维点与直线的表示: poj3129

? 线性规划: poj1755

2. 推荐题库

?http://ace.delos.com/usaco/

美国的OI 题库,如果是刚入门的新手,可以尝试先把它刷通,能够学到几乎全部的基础算法极其优化,

全部的题解及标程还有题目翻译可以baidu 一个叫NOCOW 的网站。

?http://livearchive.onlinejudge.org/

上面有全部的赛区真题,绝大部分都可以提交,不适合当题库刷,不过在这里找题非常方便。

http://poj.org/

不解释了,中国最知名的oj,题量非常之大,历史也很悠久,推荐刷一些代表性的题目。

?http://acm.timus.ru/
Ural大学的oj,国外oj 中非常好的一个,题目非常锻炼基本功,管理员会不时添加一些新数据rejudge,

推荐找些通过人数适中的题目割一割。

http://acm.sgu.ru/

SGU大学的oj,题目比较经典(比较老,几百年不更新了),不是特别推荐。

http://www.spoj.pl
比较奇葩的一个oj,有一些与众不同的提交模式,也有很多著名的系列题目,qtree 等,题目质量很好,但问题是国内的题解较少,新手如果只是想去割水题还是不要去了。

?http://acm.hdu.edu.cn
杭电大学的oj,亮点是上面独有的中国多校联合训练的题目,而且有一版(貌似是20 开头的那版)水题大全,新手提高很不错。

http://acm.zju.edu.cn

每个月定时有月赛,浙大出题非常靠谱,推荐每个月月赛可以做一做。

http://acm.hust.edu.cn
华中科技大学的oj,也就是各大oj 著名的virtual judge(三国五虎上将)的始作俑者,亮点就是那个模拟比赛的功能异常好用,平时大家可以自己配题做做模拟比赛。

http://www.codeforces.com
著名线上比赛网站,几乎每周都有一场线上比赛,有各国牛人参加,强烈推荐按时参加提高实力(要克服时差问题)。

http://www.topcoder.com/tc
更著名的一个线上比赛网站,历史相当悠久,而且有丰富的奖金,强烈推荐去做algorithm比赛的single round match,非常提高智商。

3. 推荐书籍

? 《Introduction to Algorithms》
著名的算法大全,囊括全部的基础算法,其详尽程度超乎想象,而且都做了不同程度的扩展,若能同时

配合做一做上面的习题,受益匪浅。

? 《算法艺术与信息学竞赛》
俗称黑书,lrj 的成名之作,非常开拓视野,推荐阅读并掌握。另外,lrj 最近出了一本白书,我没读过,

听说更加基础,有兴趣的同学可以去读一读。

? 《Concrete Mathematics》
计算机学科的必备书籍之一,该书几乎包括计算机科学用到的全部数学知识,如果感兴趣,推荐深入阅

读更专业的书籍(组合数学、初等数论、离散数学、线性代数等等)。

? 《How to solve it》
这一本与上面基本不同,讲的是怎样解题,一本可以帮助你更好地数学建模抽象问题的书籍,不光对竞

赛,对整个思维方式都有帮助。

? 《Computational Geometry Algorithms and Applications》
相当详细的一本计算几何书籍,计算几何往往是一场比赛中最考研基本功最不需要思维复杂度的题目,

练好计算几何对比赛相当有利。

? 《C++ 程序设计思想与方法》
对C++ 语言特性不熟悉的同学建议看看,很好的一本介绍C++ 语言的书籍,有余力的建议再学个Java,写大模拟题、高精度题都有巨大优势。

? 全部的NOI 国家集训队作业以及论文
在网上全部可以找到,非常好的资料,都是历年的强手将当时最先进的知识整理所得,也包括不少题库
的题解。

时间: 2024-10-18 13:37:12

ACM训练大纲的相关文章

《ACM/ICPC 算法训练教程》读书笔记一之数据结构(堆)

书籍简评:<ACM/ICPC 算法训练教程>这本书是余立功主编的,代码来自南京理工大学ACM集训队代码库,所以小编看过之后发现确实很实用,适合集训的时候刷题啊~~,当时是听了集训队final的意见买的,感觉还是不错滴. 相对于其他ACM书籍来说,当然如书名所言,这是一本算法训练书,有着大量的算法实战题目和代码,尽管小编还是发现了些许错误= =,有部分注释的语序习惯也有点不太合我的胃口.实战题目较多是比较水的题,但也正因此才能帮助不少新手入门,个人认为还是一本不错的算法书,当然自学还是需要下不少

acm常见算法及例题

转自:http://blog.csdn.net/hengjie2009/article/details/7540135 acm常见算法及例题 初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推.     (5)构造法.(poj3295)     (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法

推荐acm题目

杭电  http://acm.hdu.edu.cn/onlineuser.php. 浙大  http://acm.zju.edu.cn/onlinejudge/submit.do?problemId=1http://poj.org/status惟一的阿福 password:14420121 263273 14420121 学校原来网站      http://10.1.5.253:8080/acmhome/welcome.do?method=index

ACM比赛经验

ACM比赛经验: 推荐此篇文章打印,与模板放在一起. 1. 比赛中评测会有些慢,偶尔还会碰到隔10分钟以上才返回结果的情况,这段时间不能等结果,必须开工其他题,如果WA,两道题同时做.交完每道题都要先打印. 2. 比赛时发的饭不是让你当时就吃的,那是给你赛后吃的.基本上比赛中前几名的队都没人吃,除非领先很多. 3. 很多选手,尤其是第一次参加比赛的,到一个新环境,全当旅游了,参观的参观,找同学的找同学,玩玩乐乐就把正事抛到脑后了,结果比赛自然没什么好成绩,这样的例子太多了.所以到参赛地后要时刻不

HDU 3296 &amp; POJ 3138 Acm Team Section(数学)

题目链接: HDU: http://acm.hdu.edu.cn/showproblem.php?pid=3296 POJ:  http://poj.org/problem?id=3138 Acm Team Section Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 159    Accepted Submission(s): 47

2014 ACM/ICPC Asia Regional Guangzhou Online Wang Xifeng&#39;s Little Plot HDU5024

一道好枚举+模拟题目.转换思维视角 这道题是我做的,规模不大N<=100,以为正常DFS搜索,于是傻乎乎的写了起来.各种条件限制模拟过程 但仔细一分析发现对每个点进行全部八个方向的遍历100X100X100^8 .100X100个点,每个点在走的时候8中选择,TLE 于是改为另一个角度: 以符合要求的点为拐弯点,朝两个垂直的方向走,求出最远的距离.这样只要对每个点各个方向的长度知道,组合一下对应的就OK. 避免了每个点深搜. PS:搜索的时候x,y写反了,导致构图出现问题,以后用[dy][dx]

HDU 5014 Number Sequence(2014 ACM/ICPC Asia Regional Xi&#39;an Online) 题解

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5014 Number Sequence Problem Description There is a special number sequence which has n+1 integers. For each number in sequence, we have two rules: ● ai ∈ [0,n] ● ai ≠ aj( i ≠ j ) For sequence a and sequ

[ACM] hdu 1242 Rescue (BFS+优先队列)

Rescue Problem Description Angel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is described as a N * M (N, M <= 200) matrix. There are WALLs, ROADs, and GUARDs in the prison. Angel's friends want to save Angel. Their task is:

ACM退役记&amp;&amp;回忆录

ACM退役记 2017.9.19星期二,"九一八事变"八十六年后的第二天,永远记住这个日子,刚好是我报名ACM到现在,刚好满一年,而今天正是我注册杭州电子科技大学OJ的时间(就是这一天报名的),附上小图一张! 嗯,我退役了,真的退役了,从此告别了ACM的生涯,虽然有很多遗憾,虽然有很多不舍,虽然有很多很多不情愿,但是,,,还是没能阻止这一天的到来,可能你们会认为我退役的有点早,可能你们也会有很多疑惑,为啥这么优秀这么强的大佬竟然退役的这么早...(自嘲一下,其实菜的一逼) 其实这个原因