您的位置:首页 > 其它

动态规划 问题之数字三角形(正序递推)

2012-08-03 11:44 232 查看
源代码:

#include<iostream>//正序递归出来的数字三角形 

using namespace std;

int d[100][100];

int a[100][100];

int n;

int D(int i,int j)

{
if(d[i][j]>=0) return d[i][j];
return d[i][j]=a[i][j]+(i==n?0:D(i+1,j)>?D(i+1,j+1));

}

int main()

{
while(cin>>n)
{
memset(d,-1,sizeof(d));
memset(a,0,sizeof(a));
for(int i=1;i<=n;i++)
 for(int j=1;j<=i;j++)
 cin>>a[i][j];
 

         for(int i=1;i<=n;i++)

           {
    for(int j=1;j<=i;j++)

         
   cout<<a[i][j]<<" ";

           cout<<endl;

           }

            

        for(int i=1;i<=n;i++)

          for(int j=1;j<=i;j++)

          {

          D(i,j);

            //d[i][j]=D(i,j);

          //cout<<d[i][j]<<endl;

          } 

        cout<<d[1][1]<<endl;
}

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