动态规划是一个非常复杂的算法,其没有固定的格式,题型大致可以分为以下几个板块:
1.线性型
2.坐标型
3.区间型
4.背包型
5.树型
在开始之前,我先来说说深度优先搜索(简称:深搜)和宽度优先搜索(简称:宽搜)
有一道IOI 1994年的题
数字三角形(深度优先搜索解法)
有一个数字三角形,编程求从最顶层到最底层的一条路所经过位置上数字之和的最大值。每一步只能向左下或右下方向走。下图数据的路应为7->3->8->7->5,和为30。
输入:
第一行:n(1<=n<=100),数字三角形共有n行;
以下R行:依次表示数字三角形中每行中的数字。
每个数都是非负的,且<=100.
输出:
有一个数字三角形,编程求从最顶层到最底层的一条路所经过位置上数字之和的最大值。每一步只能向左下或右下方向走。下图数据的路应为7->3->8->7->5,和为30。
输入:
第一行:n(1<=n<=100),数字三角形共有n行;
以下R行:依次表示数字三角形中每行中的数字。
每个数都是非负的,且<=100.
输出:
一个正整数,路径上数字之和的最大值。
输入样例:
5
7