对ACM初学者的意见及推荐ACMer看的书

一般要做到50行以内的程序不用调试、100行以内的二分钟内调试成功.acm主要是考算法的,主要时间是花在思考算法上,不是花在写程序与debug上。

下面给个计划练练:  

第一阶段:练经典常用算法,下面的每个算法打上十到二十遍,同时自己精简代码。因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打出来.  

1.最短路(Floyd、Dijstra,BellmanFord)  

2.最小生成树(先写个prim,kruscal要用并查集,不好写)

3.大数(高精度)加减乘除

4.二分查找. (代码可在五行以内)  

5.叉乘、判线段相交、然后写个凸包.  

6.BFS、DFS,同时熟练hash表(要熟,要灵活,代码要简)  

7.数学上的有:辗转相除(两行内),线段交点、多角形面积公式.

8. 调用系统的qsort, 技巧很多,慢慢掌握.

9. 任意进制间的转换

第二阶段:练习复杂一点,但也较常用的算法。

如:

1. 二分图匹配(匈牙利),最小路径覆盖

2. 网络流,最小费用流。  

3. 线段树.   

4. 并查集。  

5. 熟悉动态规划的各个典型:LCS、最长递增子串、三角剖分、记忆化dp  

6.博弈类算法。博弈树,二进制法等。  

7.最大团,最大独立集。  

8.判断点在多边形内。  

9. 差分约束系统.  

10. 双向广度搜索、A*算法,最小耗散优先.

 

 

给学习算法的人一点买书的建议吧。希望中国计算机和软件专业的大学生能更多的重视算法学习。
1. <The Art of Computer Programming>    Knuth的巨作 计算机算法科学的Bible

2. <Introduction to Algorithm> 传说中的宝典
3. <Concrete Mathematics> Knuth对于计算机数学的经典理解
4. <Introductory Combinatorics> 计算机研究生必修的专业课程
5. <Computational Geometry in C> 计算几何
6. <Discrete Mathematics and Its Applications> 经典离散数学教材
7. <Data Structures,Algorithms, and Applications in C++> 相当经典的数据结构和算法入门教材
8. <算法艺术与信息学竞赛> 刘汝佳的杰作,引导着信息学竞赛的发展
9. <实用算法的分析与程序设计> 传说中的黑书。
10. <算法设计与分析> 这是国内牛人王晓东的大作,非常不错的算法书
11. <国际大学生程序设计竞赛例题解> 中山大学刚出的书 (数论,计算几何,搜索及习题)
12. <信息学奥林匹克竞赛指导系列>   图论 和 组合数学
13. <网络算法与复杂性理论>  作者:谢政 出版社:国防科技大学出版社 ISBN:7-81024-330-6
14. <Game Theory>  一本经典的电子书 传说中博弈论的宝典
15. 各类经典数学小册子 每年NOI国家集训队的论文

文章来自星空夜话的blog

Data Structures, Algorithms and Applications in C++ Second Edition Sartraj Sahni | Universities Press 2005 | ISBN: 817371522X | PDF | 826 Pages | 27 MB Description The study of data structures and algorithms is fundamental to computer science and engineering. A mastery of these areas is essential for us to develop computer programs that utilize computer resources in an effective manner. This book is a nice description of data structures in C++. The Part I of book consist of c++ review and preliminaries, Part II consists of data structures including Lists, Dictionaries, Stacks, Queues and trees and their different types of representations, Arrays and Matrices, Graphs and Performance analysis and Part III consists of Algorithm-Design Methods including Greedy method, Divide and conquer, Dynamic Programming, Backtracking (on the web), Branch and Bound (on the web). Table of Contents Part I Preliminaries Chapter 1 C++ Review Chapter 2 Performance Analysis Chapter 3 Asymptotic Notation Chapter 4 Performance Measurement Part II Data Structures Chapter 5 Linear Lists - Arrays Representation Chapter 6 Linear Lists - Linked Representation Chapter 7 Arrays and Matrices Chapter 8 Stacks Chapter 9 Queues Chapter 10 Skip Lists and Hashing Chapter 11 Binary and Other Trees Chapter 12 Priority Queues Chapter 13 Tournament Trees Chapter 14 Binary Search Trees Chapter 15 Balanced Search Trees Chapter 16 Graphs Part III Algorithm Design Methods Chapter 17 The Greedy Method Chapter 18 Divide and Conquer Chapter 19 Dynamic Programming Chapter 20 Backtracking (On the Web) Chapter 21 Branch and Bound (On the Web) Index
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值