入门三本:《数据结构与算法》(傅清祥,王晓东编著,我所见过的最好的算法教材)
程序设计导引及在线实践 作者: 李文新
ACM程序设计培训教程 吴昊
基础提高:
算法艺术与信息学竞赛 第二版 刘汝佳
算法设计与分析 王晓东
算法设计与试验题解 王晓东
科曼:《算法导论》
组合数学 第三版 冯舜玺 译
计算几何-算法设计与分析 周培德
国际信息学奥林匹克竞赛指导— — 实用算法的分析与程序设计 吴文虎 王建德
网络算法与复杂性理论 谢政 李建平
《Concrete Mathematics --- A Foundation For Computer Science》 Ronald L. Graham , Donald E. Knuth , Oren Patashnik《具体数学》(能买到中文版最好)
《计算机程序设计艺术》三卷 Knuth
组合数学的算法与程序设计
《程序设计中的组合数学》 吴文虎
图论的算法与程序设计
图、网络与算法
国际大学生程序设计竞赛辅导教程 郭嵩山 崔昊
《ACM国际大学生程序设计竞赛试题与解析》全部册(吴文虎著,清华大学出版社)
C算法.第1卷,基础、数据结构、排序和搜索(第三版)
C算法(第2卷图算法第3版中文版)译者:周良忠 (美国)塞奇威克著
国际大学生程序设计竞赛例题解 四本 郭嵩山
训练计划:
http://acm.ecust.edu.cn/training/articles/
先做几组难度最低的题,这些题都来自浙大(ZJU)、北大(PKU)和同济(TOJ)的网站。
有些题的解法几乎一眼可以看出,但对C,C++基本语句的熟悉还是很有好处的。练习这些题还有以下目的:
1. 了解竞赛题的形式
2. 熟悉如何在训练系统中提交做对的题目
请所有的新队员认真完成以下各题。如果做题遇到困难,如题意难以理解、不知如何着手或不知错在哪里,不要气馁,可以请教别的队员,也可请教教练。我们会尽力帮助你完成这几组中每一道题。但不要复制别人的程序,即便参考了别人的程序,也要亲自再完成一遍。而且不建议过多参考别人程序,这样会消弱训练的效果,也减少了思考的乐趣。
有些队员可能觉得某些题太简单,但我们还是建议将它们都做掉。因为题目虽然简单,但是再简单的题目都不能保证一次做对,而做错题的各种原因如题意理解错误,格式错误等你都会碰到。了解这些原因对减少错误率很有好处。
做题前请了解一些规范:
1. main函数应为int型,最后return 0 ,即:
int main()
{
...
return 0;
}
这样做是因为避免有些编译器报错。
2. 为了便于核对,请在代码开头加上可以表明题目的注释,如:
//ZJU1001; /*PKU1002 */等
Group 0:热身
再次提醒:做对后别忘提交到训练系统.
编号 来源 题号标题评注
三道都是A+B,而且有样例程序。请自己做一遍,不要拷。
0.1 ZJU 1001A+B Problem
0.2 PKU 1000A+B Problem
0.3 TOJ 1000熟悉一下Online Judge的环境
Group 1:起步
以下是一些TOJ上的题目,作为起步练习很不错。题目是中文的,但其它形式和比赛题型一样。要注意输出格式。有些题目对格式交待不是很清楚,但这并不是说你可以随意增加空格和空行。遇到这种情况,根据样例输出自行判断。一般行尾没有多余空格。
编号 来源 题号标题评注
1.1 TOJ 1001排版题.输出排列成菱形的字母
1.2 TOJ 1003排版题.输出三角形的字符
1.3 TOJ 1006敲七
1.4 TOJ 1007Step.如何得到输入数据的结束
1.5 TOJ 1008扬辉三角
1.6 TOJ 1009蛇行矩阵
可以直接在2维数组中填数.
(直接推出每个位置数字的公式和递推公式也可以,但效果并不比前一种方法更有效,而且难度较大)
1.7 TOJ 1015行编辑器简单的字符串处理
1.8 TOJ 1019输入三个自然数
Group 2:英文题(1)
以下是ZJU上的题目,ZJU的题都是英文的,有些题难度可能不比上面一组高。但对新队员来说,理解题意本身可能是个难点。
编号 来源 题号标题评注
2.1 ZJU 1048Financial Management
只比A+B难一点
2.2 ZJU 1045HangOver这一道和下面两道都是简单的计算
2.3 ZJU 1049I Think I need I boat
2.4 ZJU 1813Biker's Trip Odometer
2.5 ZJU 1057Undercut
2.6 ZJU 1113u Calculate e没有输入,但要注意格式
2.7 ZJU 1151Word Reversal简单的字符串处理
2.8 ZJU 1195Blowing Fuses别看题有些长,但其实很简单
2.9 ZJU 1755Clay Bully
2.10 ZJU 1760Doubles
Group 3:英文题(2)
下面这些题可能稍微难一些,但与上面一组难度上并没有本质区别。只要仔细想想,应当不难做出。
编号 来源 题号标题评注
3.1 ZJU 14892^x mod n = 1
3.2 ZJU 1712Skew Binary
3.3 ZJU 1016Parencodings
3.4 ZJU 1350The Drunk Jailer
3.5 ZJU 1051A New Growth Industry这三题可能比较繁琐,做的时候要仔细
3.6 ZJU 1178Booklet PrintingBook
3.7 ZJU 1078Palindrom Numbers
Group 4:TOJ前20题中剩余题
TOJ前20题都是基础题,在第一组练习中已经做了一部分,剩下的这一部分难度肯定比第一组大,但与上一组难度差不多。有几道题涉及更知识,在这依旧被剔除,留着以后做。
编号 来源 题号标题评注
4.1 TOJ 1005母牛生小牛类似Fibonacci数列,但有区别
4.2 TOJ 1012约瑟夫问题
4.3 TOJ 1013去尾问题
4.4 TOJ 1014阶乘结果末尾有多少零?这两题涉及到一些数学推导,可能难度较大
4.5 TOJ 1016请求N!左边第二位的数字
4.6 TOJ 1018编制一个乘法运