数字三角形(动态规划)

来源:互联网 发布:学单片机还是plc 编辑:程序博客网 时间:2024/05/16 17:04

这是一道算法竞赛入门经典上的例题,我将自己写的代码贴在下面,没时间完善,主要是准备华为机试的。





这题的分析是用回溯法也可以做,但是比较麻烦,用动态规划,只要了解了状态和状态转移方程就很简单了,话不多说,上代码。

<span style="color:#006600;">#include <iostream>#include <string.h>using namespace std;     int max1(int a,int b){if(a>b){return a;}elsereturn b;}int main(){int a[4][4]={{1},{3,2},{4,10,1},{4,3,2,10}};int status[4][4]={0};int i,j;for(i=3;i>=0;i--)status[3][i]=a[3][i];for(i=2;i>=0;i--){for(j=2;j>=0;j--){<span style="color:#ff0000;">status[i][j]=a[i][j]+max1(status[i+1][j],status[i+1][j+1]);</span>}}cout<<status[0][0]<<endl;cin>>j;    return 0;}</span>



0 0
原创粉丝点击