动态规划的特点及应用.ppt

动态规划 动态规划 例 POJ 1163 数字三角形 在上面的数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字之和最大。路径上的每一步都只能往左下或右下走。只需要求出这个最大和即可,不必给出具体路径。 输入数据的要求:三角形的行数大于1小于等于100 数字为0 - 99 输入格式 输入格式: //三角形行数。下面是三角形 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 要求输出最大和 算法一:递归的想法 设f(i,j) 为三角形上从点(i,j)出发向下走的最长路经,则 f(i,j) = max(f(i+1,j), f(i+1,j+1)) 要输出的就是f(0,0)即从最上面一点出发的最长路经。 代码如下: #include iostream.h #define MAX 101 int triangle[MAX][MAX]; int n; int longestPath(int i, int j); void main(){  int i,j;  cin n;  for(i=0;in;i++) for(j=0;j=i;j++)   cin triangle[i][j];  cout longestPath(0,0) endl; } int longestPath(int i, int

文档评论(0)

1亿VIP精品文档

相关文档