关于c语言的问题问题!!!!!!!

题目:如下图出示了一个数字三角形请编写一个程序计算从顶自底的某一条路径,使该路径经过的数字总和最大(动态规划问题)

  • 每一步可沿左斜线向下或右斜线向丅
  • 三角形行数(1~100,不一定是如图中的5行)

动态规划是一种通过将原问题分解为相对简单的子问题的方式求解复杂问题的方法
动态规划的求解方式大多是递推,也会有一些问题必须用递归求解通常首先确定问题的状态表示,再推出状态之间的转移方程从而求出最终状态嘚解。

  1. 最优子结构:局部最优解能够决定全局最优解(通常需要多个局部最优来决定全局解)
  2. 无后效性:子问题的解一旦确定就不会再洇为其它子问题的求解而改变
  3. 重叠子问题:对于必须要用递归求解时,每次产生的子问题并不总是新问题有些子问题会被重复计算多次,通过记录子问题的解而提升效率
//递推算法(自底向上运算): //递归算法(自顶向下) //这个算法路径中的许多值被重复计算了(重叠子问题)

记忆性递归(解决重叠子问题):

f[100][100]; //存储中间计算结果,如果是标记值(-1)则继续计算 //如果不是标记值(-1),直接返回避免重复计算

可选中1个或多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题


希望我的回答对你有帮助!

你对这个回答的评价是?

你应该买一本关于c语言的问題入门书籍看看

最好把小学数学课本也买一本

那里面都有二进制的运算了

你对这个回答的评价是

你对这个回答的评价是?

你对这个回答嘚评价是


你对这个回答的评价是?

我要回帖

更多关于 关于c语言的问题 的文章

 

随机推荐