您的位置:首页 > 其它

初探动态规划之数字三角形

2015-12-04 21:24 288 查看
#include <stdio.h>

#include <algorithm>
using namespace std;
int end=5;
int array[5][5];
int dp[5][5];

int main(){
for(int i=0;i<end;i++){
for(int j=0;j<=i;j++){
scanf("%d",&array[i][j]);
}
}
//while(i==4){
for(int j=0;j<end;j++){
dp[4][j]=array[4][j];
}
//}

for(int i=4;i>=0;i--){
for(int j=0;j<=i;j++){
dp[i][j]=max(dp[i+1][j],dp[i+1][j+1])+array[i][j];
printf("dp[%d][%d]=%d\n",i,j,dp[i][j]);
}

}

printf("%d",dp[0][0]);

return 0;
}


说实在的我心里仍然对动态规划十分迷惑,至此我唯一能体会到的就是本来可以用递归做到的,但是递归没有记忆需要反复计算,这里就可以找一个方法记住这些过程值,从而简化计算。

有待下一次补充。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: