【DFS与BFS】
分别是深度优先搜索与广度优先搜索,一开始用于树的遍历,比如下面的这棵树。
那么这棵树的深度优先遍历就是1-2-4-8-9-5-10-11-3-6-12-13-7-14-15,细心的读者就可以发现。这种搜索方式简单来说就是一直走,走的越深越好。
那广度优先遍历呢,它的遍历结果就是1-2-3-4-5-6-7-8-9-10-11-12-13-14-15,规则与上面的相反。
最后通过递归实现,一般应用在最短路、暴力、图的遍历等方面。
———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
【DP(动态规划)】
DP简单来说就是递推——通过上一次计算的结果计算出这一次的结果,以此类推。
写关于动态规划的题首先要搞清楚状态与递推方程,以及起始点。这样的话写程序就很简单了。
———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
贪心
迪杰斯特拉与Floyd(最短路算法)
各种排序
模拟
暴力
线段树(键人正在琢磨,请看官稍安勿躁)
RMQ(前缀和)
二分(暂时先不写了)
三分(先不写了)
下面是我从各大OJ找到的几道优秀例题————————————————————————————————————————————————————————
http://poj.kechuangedu.com/oj/home/problem.htm?problemID=688(这是一道进阶的线段树,过一段时间之后会写出题解)