acm题目推荐

来源:互联网 发布:科比81分数据 编辑:程序博客网 时间:2024/05/21 17:54
 

1. CLRS 算法导论

1,算法导论

算法百科全书,只做了前面十几章的习题,便感觉受益无穷。

 

2. Algorithms 算法概论

短小精悍,别据一格,准经典之作。一个坏消息: 同算法导论,该书没有习题答案。好消息:习题很经典,难度也适中,只需花点点时间自己也都能做出来。不好也不坏的消息:我正在写习题的答案,已完成前三章,还剩九章约二百道题,顺利的话二个月之后发布。另有中文版名《算法概论》,我没看过,不知道翻译得怎么样。如果有心的话,还是尽量看原版吧,其实看原版与看中文版花费时间不会相差很大,因为大部分时间其实都花费在做习题上了。

 

3. Algorithm Design 算法设计

很经典的一本书,很久之前看的,遗憾的是现在除了就记得它很经典之外其它都忘光了。

 

4. SICP 计算机程序的构造和解释

六星之书无需多言,虽然这不是一本讲算法的书,但看完此书有助于你更深入的理解什么是递归。我一直很强调习题,看完此书后你至少应该做完前四章的太部分习题。否则那是你的遗憾,也是作者的遗憾。

 

5. Concrete Mathematics 具体数学 

有人说看TAOCP之前应该先弄清楚这本书的内容,要真是如此的话那我恐怕是看不到TAOCP了。零零碎碎的看了一大半,很多东西都没有时间来好好消化。如果你是刚进大学不久的本科生,有着大把的可自由支配时间,那你幸运又幸福了,花上几个月时间好好的读一下此书吧,收获绝对大于你的期望值。

 

6. Introduction to The Design and Analysis of Algorithms 算法设计与分析基础

很有趣的一本算法书,有许多在别的书上找不到的趣题,看完此书绝对能让你大开眼界,实在是一本居家旅行,面试装逼的必备佳作。

 

7. 编程之美--微软技术面试心得 

虽说是一本面试书,但如果把前面十几页扯掉的话,我更愿意把它看作是一本讲解题思维的算法小品。在书中,作者通常是给出一个平常解法,然后再一次又一次的优化改进,你可以很清楚的看到基本的算法设计思想是如何得到运用以解决实际问题的。如果你已经有了一些算法的基础,看完本书应该能使你的算法应用能力得到一定的提高。另外,本书生动有趣,也同样适合于初学者。

 

8. Fundamentals of Algorithmics 算法基础 

也是很久之前在学校图书馆借来看的,内容记不太清楚了,只隐约记得此书的动态规划章节犹为出彩。应该是很经典的一本书,个人以为足以和算法导论等所谓当世经典平分秋色,但是怎么好像被人提到的不多,或许是我孤陋寡闻了。

 

9. How to solve it 怎样解题

二十世纪最伟大的数学思想家之一波利亚的力作,讲一般性的解题方法:怎么认识问题,怎么转换问题,怎么解决问题,如何在问题中得到启发,如何找到一个通往答案的方向。

 

10. Programming interviews exposed 程序员面试攻略

一本消遣之作。个人以为要比国内的某“XXX面试宝典”纯粹一些,至少也有一些启发性的内容,而不单单是面试题解库。

 

11. Programming Pearls 编程珠玑

学习算法不仅需要像Alogrithms,算法导论这样的重量级的内功心法,像《编程之美》、《编程珠玑》这样的轻量级的轻功身法也必不可少。前些年网上不是很流行像“给你10亿个数,找到最大的n个”或者“给你10亿个数,找出现次数最多的那个数”之类的百度面试题吗?看了此书你就知道怎么解决了。相比于《编程之美》来说,本书中的示例技巧性略低一些,但是也更有实际应用价值一些。

 

12. 算法艺术与信息学竞赛 

如果算法导论是九阳神功,那这本无疑就是九阴真经。本书是专为参加一些诸如ACM之类程序设计比赛的同学而写的,江湖人称“黑书”。里面讲的都是一些在编程比赛中常用的算法、数据结构,以及一些数论和计算几何等。我虽然并不搞竞赛,但也从此书中受益颇多。

 

13. An Introduction to Probability Theory and Its Applications

准备看的,现在才发现概率论有多么重要,可惜本科的时候没有好好学。前不久一个同学问我个问题,我半天弄了一个程序给他,他说:这里就不是相关系数么,Excel一下就完事!我晕,我还真不知道那就是相关系数。

 

14. Numerical Analysis

这本的作者是Richard L. Burden,J. Douglas Faires 

数值分析,讨论各种数值算法,比如插值、拟合、积分、微分方程的求解、线性和非线性方程组求解等。准备详细看。

 

15. TAOCP 计算机程序设计艺术

传说中的TAOCP,说的人多,看的人少。TAOCP四卷堪称是算法藏经阁中的易筋经或者是少林七十二绝技。天下武学,尽出少林,天下算法,尽出TAOCP 也。这点你可以顺便翻开一本算法书看看他的引用文献就知道了。我只读了第四卷的部分章节,前三卷暂时还没敢看,还在读书计划表中被无限期搁置。

====================

ACM基本算法分类、推荐学习资料和配套pku习题

 

 

一.动态规划

 

参考资料:

 

刘汝佳《算法艺术与信息学竞赛》《算法导论》

 

推荐题目:

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1141

 

简单

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2288

 

中等,经典TSP问题

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2411

 

中等,状态压缩DP

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1112

 

中等

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1848

 

中等,树形DP。可参考《算法艺术与信息学竞赛》动态规划一节的树状模型

 

http://acm.zju.edu.cn/show_problem.php?pid=1234

 

中等,《算法艺术与信息学竞赛》中的习题

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1947

 

中等,《算法艺术与信息学竞赛》中的习题

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1946

 

中等,《算法艺术与信息学竞赛》中的习题

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1737

 

中等,递推

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1821

 

中等,需要减少冗余计算

 

http://acm.zju.edu.cn/show_problem.php?pid=2561

 

中等,四边形不等式的简单应用

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1038

 

较难,状态压缩DP,《算法艺术与信息学竞赛》中有解答

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1390

 

较难,《算法艺术与信息学竞赛》中有解答

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=3017

 

较难,需要配合数据结构优化(我的题目^_^)

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1682

 

较难,写起来比较麻烦

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2047

 

较难

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2152

 

难,树形DP

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=3028

 

难,状态压缩DP,题目很有意思

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=3124

 

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2915

 

非常难

 

二.搜索

 

参考资料:

 

刘汝佳《算法艺术与信息学竞赛》

 

推荐题目:

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1011

 

简单,深搜入门题

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1324

 

中等,广搜

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2044

 

中等,广搜

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2286

 

较难,广搜

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1945

 

难,IDA*,迭代加深搜索,需要较好的启发函数

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2449

 

难,可重复K最短路,A*。可参考解题报告:

 

http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1144

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1190

 

难,深搜剪枝,《算法艺术与信息学竞赛》中有解答

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1084

 

难,《算法艺术与信息学竞赛》习题

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2989

 

难,深搜

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1167

 

较难,《算法艺术与信息学竞赛》中有解答

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1069

 

很难

 

三. 常用数据结构

 

参考资料:

 

刘汝佳《算法艺术与信息学竞赛》

 

《算法导论》

 

线段树资料:

 

http://home.ustc.edu.cn/~zhuhcheng/ACM/segment_tree.pdf

 

树状数组资料

 

http://home.ustc.edu.cn/~zhuhcheng/ACM/tree.ppt

 

关于线段树和树状数组更多相关内容可在网上搜到

 

后缀数组资料

 

http://home.ustc.edu.cn/~zhuhcheng/ACM/suffix_array.pdf

 

http://home.ustc.edu.cn/~zhuhcheng/ACM/linear_suffix.pdf

 

推荐题目

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2482

 

较难,线段树应用,《算法艺术与信息学竞赛》中有解答

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1151

 

简单,线段树应用矩形面积并,《算法艺术与信息学竞赛》中有解答

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=3225

 

较难,线段树应用,可参考解题报告

 

http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1233

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2155

 

难,二维树状数组。

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2777

 

中等,线段树应用。

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2274

 

难,堆的应用,《算法艺术与信息学竞赛》中有解答

 

http://acm.zju.edu.cn/show_problem.php?pid=2334

 

中等,左偏树,二项式堆或其他可合并堆的应用。

 

左偏树参考 http://www.nist.gov/dads/HTML/leftisttree.html

 

二项式堆参见《算法导论》相关章节

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1182

 

中等,并查集

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1816

 

中等,字典树

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2778

 

较难,多串匹配树

 

参考: http://home.ustc.edu.cn/~zhuhcheng/ACM/zzy2004.pdf

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1743

 

难,后缀数组

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2774

 

较难,最长公共子串,经典问题,后缀数组

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2758

 

很难,后缀数组

 

可参考解题报告

 

http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1178

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2448

 

很难,数据结构综合运用

 

四.图论基础

 

参考资料:

 

刘汝佳《算法艺术与信息学竞赛》《算法导论》《网络算法与复杂性理论》谢政

 

推荐题目:

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2337

 

简单,欧拉路

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=3177

 

中等,无向图割边

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2942

 

较难,无向图双连通分支

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1639

 

中等,最小度限制生成树,《算法艺术与信息学竞赛》中有解答

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2728

 

中等,最小比率生成树,《算法艺术与信息学竞赛》中有解答

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=3013

 

简单,最短路问题

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1275

 

中等,差分约束系统,Bellman-Ford求解,《算法艺术与信息学竞赛》中有解答

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1252

 

简单,Bellman-Ford

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1459

 

中等,网络流

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2391

 

较难,网络流

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1325

 

中等,二部图最大匹配

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2226

 

较难,二部图最大匹配

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2195

 

中等,二部图最大权匹配

 

KM算法参考《网络算法与复杂性理论》

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2516

 

较难,二部图最大权匹配

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1986

 

中等,LCA(最近公共祖先)问题

 

参考Tarjan's LCA algorithm 《算法导论》第21章习题

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2723

 

较难,2-SAT问题

 

参考:http://home.ustc.edu.cn/~zhuhcheng/ACM/2-SAT.PPT

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2749

 

较难,2-SAT问题

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=3164

 

较难,最小树形图

 

参考《网络算法与复杂性理论》中朱-刘算法

 

五.数论及组合计数基础

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1811

 

简单,素数判定,大数分解

 

参考算法导论相关章节

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2888

 

较难,Burnside引理

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2891

 

中等,解模方程组

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2154

 

中等,经典问题,波利亚定理

 

http://cs.scu.edu.cn/soj/problem.action?id=2703

 

难,极好的题目,Burnside引理+模线性方程组

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=2764

 

较难,需要数学方法,该方法在《具体数学》第七章有讲

 

http://acm.pku.edu.cn/JudgeOnline/problem?id=1977

 

简单,矩阵快速乘法

 

原创粉丝点击