1.关于编程的知识体系

基本策略:

1. 先想清楚算法,再写代码

2. 先写代码,再着重考虑空间时间上的优化

3. 代码要简洁直观,尽量少重复代码


小音符:可以看一看这些算法发展的有趣故事,以及有趣的应用


知识体系(借鉴下高手的框架):

第2章 初出茅庐——初级篇2.1  最基础的“穷竭搜索”2.1.1  递归函数
2.1.2  栈
2.1.3  队列
2.1.4  深度优先搜索
2.1.5  宽度优先搜索
2.1.6  特殊状态的枚举
2.1.7  剪枝
2.2  一往直前!贪心法2.2.1  硬币问题
2.2.2  区间问题
2.2.3  字典序最小问题
2.2.4  其他例题
2.3  记录结果再利用的“动态规划”2.3.1  记忆化搜索与动态规划
2.3.2  进一步探讨递推关系
2.3.3  有关计数问题的DP
2.4  加工并存储数据的数据结构2.4.1  树和二叉树
2.4.2  优先队列和堆
2.4.3  二叉搜索树
2.4.4  并查集
2.5  它们其实都是“图”2.5.1  图是什么
2.5.2  图的表示
2.5.3  图的搜索
2.5.4  最短路问题
2.5.5  最小生成树
2.5.6  应用问题
2.6  数学问题的解题窍门2.6.1  辗转相除法
2.6.2  有关素数的基础算法
2.6.3  模运算
2.6.4  快速幂运算
2.7  一起来挑战GCJ的题目(1)2.7.1 Minimum Scalar Product
2.7.2 Crazy Rows
2.7.3 Bribe the Prisoners
2.7.4 Millionaire
第3章 出类拔萃——中级篇3.1  不光是查找值!“二分搜索”3.1.1  从有序数组中查找某个值
3.1.2  假定一个解并判断是否可行
3.1.3  最大化最小值
3.1.4  最大化平均值
3.2  常用技巧精选(一)3.2.1  尺取法
3.2.2  反转(开关问题)
3.2.3  弹性碰撞
3.2.4  折半枚举(双向搜索)
3.2.5  坐标离散化
3.3  活用各种数据结构3.3.1  线段树
3.3.2 Binary Indexed Tree
3.3.3  分桶法和平方分割
3.4  熟练掌握动态规划3.4.1  状态压缩DP
3.4.2  矩阵的幂
3.4.3  利用数据结构高效求解
3.5  借助水流解决问题的网络流3.5.1  最大流
3.5.2  最小割
3.5.3  二分图匹配
3.5.4  一般图匹配
3.5.5  匹配、边覆盖、独立集和顶点覆盖
3.5.6  最小费用流
3.5.7  应用问题
3.6  与平面和空间打交道的计算几何3.6.1  计算几何基础
3.6.2  极限情况
3.6.3  平面扫描
3.6.4  凸包
3.6.5  数值积分
3.7  一起来挑战GCJ的题目(2)3.7.1 Numbers
3.7.2 No Cheating
3.7.3 Stock Charts
3.7.4 Watering Plants
3.7.5 Number Sets
3.7.6 Wi-fi Towers
第4章 登峰造极——高级篇4.1  更加复杂的数学问题4.1.1  矩阵
4.1.2  模运算的世界
4.1.3  计数
4.1.4  具有对称性的计数
4.2  找出游戏的必胜策略4.2.1  游戏与必胜策略
4.2.2 Nim
4.2.3 Grundy数
4.3  成为图论大师之路4.3.1  强连通分量分解
4.3.2 2-SAT
4.3.3 LCA
4.4  常用技巧精选(二)4.4.1  栈的运用
4.4.2  双端队列的运用
4.4.3  倍增法
4.5  开动脑筋智慧搜索4.5.1  剪枝
4.5.2 A*与IDA*
4.6  划分、解决、合并:分治法4.6.1  数列上的分治法
4.6.2  树上的分治法
4.6.3  平面上的分治法
4.7  华丽地处理字符串4.7.1  字符串上的动态规划算法
4.7.2  字符串匹配
4.7.3  后缀数组
4.8  一起来挑战GCJ的题目(3)4.8.1 Mine Layer
4.8.2 Year of More Code Jam
4.8.3 Football Team
4.8.4 Endless Knight
4.8.5 The Year of Code Jam


ACM 竞赛中考察的基本题型

1.Mathematics Prime Number
Big Integer
Permutation
Number Theory
Factorial
Fibonacci
Sequences
Modulus
2.Dynmic Programming Longest Common Subsequence
Longest Increasing Subsequence
Edit Distance
0/1 Knapsack
Coin Change
Matrix Chain Multiplication
Max Interval Sum
3.Graph Traversal
Flood Fill
Floyed Warshal
MST
Max Bipertite Matching
Network Flow
Aritculation Point
4.Sorting Bubble Sort
Quick Sort
Merge Sort (DAndC)
Selection Sort
Radix Sort
Bucket Sort
5.Searching Complete Search, Brute Force
Binary Search (DAndC)
BST
6.SimulationJosephus
String Processing String Matching
Pattern Matching
7.Computational Geometry Convex Hull
8.AdHoc Trivial Problems 


参考资料:

1. 挑战程序设计竞赛(第2版)

2. Art of Programming Contest

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值