摘要: 问题描述:考虑下面的数字金字塔,写一个程序来计算从最高点开始,在底部任意处结束经过的数字和最大,每一步可以走到左下和右下的点。 73 8 8 1 0 2 7 4 44 5 2 6 5变形后:73 88 1 02 7 4 44 5 2 6 5问题分析:可以先对金字塔进行变形,如上。对于数字金字塔可以用(i, j)来表示数字在金字塔中的位置。对于金字塔中间的一点,想要经过它,则必须经过它的左上或上面的点(变形后)。因此要使经过该点的和最大,则是在经过左上和右上的点中较大的“最大和”,然后加上该点的值。这样,状态很明显是金字塔的层。设计一个二维状态opt[i, j]表示到第 i 行 第 j 列的最大 阅读全文
posted @ 2011-04-30 15:26 steel_heart 阅读(439) 评论(0) 推荐(0) 编辑