原题链接:数字三角形

解题思路:我们所要解决的问题不过是进行一层层的最大值判断,然后将其相加

                                                    

83aa3abaa047ec972ec633a9bf8a5253.jpg注意事项:

参考代码:

#include<iostream>

#include<cstring>

#include<algorithm>

using namespace std;

int arr[1010][1010];//把arr看成上面写的g就行了

int n;

int fun(int x1,int y1)

{

if(x1>n) return 0;

else return max(fun(x1+1,y1)+arr[x1][y1],fun(x1+1,y1+1)+arr[x1][y1]); 

}




int main()

{

cin>>n;

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

{

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

{

cin>>arr[i][j];

}

}

int fh=fun(1,1);//从第一个开始递

cout<<fh;

}





接下来是记忆化搜索的代码






#include<iostream>

#include<cstring>

#include<algorithm>

using namespace std;

int arr[1010][1010];

int brr[1010][1010];/*记忆数组 ,

                      8

                1          0

                      4

当1和0都递到4时,1已经记录过4后面的了,直接返回判断4的结果*/

int n; 

int  sum;//用sum来记录结果

int fun(int x1,int y1)

{

if(brr[x1][y1])   return brr[x1][y1];//如果出现第2个一样的,返回第一个的值;

if(x1>n) return 0;

else         sum=max(fun(x1+1,y1)+arr[x1][y1],fun(x1+1,y1+1)+arr[x1][y1]);

brr[x1][y1]=sum;

return sum;


}




int main()

{

cin>>n;

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

{

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

{

cin>>arr[i][j];

}

}

int fh=fun(1,1);

cout<<fh;

}



接下来是递推

#include<iostream>

#include<cstring>

#include<algorithm>

using namespace std;

int arr[1010][1010];

int brr[1010][1010];

int f[1010][1010];

int n;

int main()

{

        cin>>n;

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

        {

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

               {

                        cin>>arr[i][j];

                }

        }

        for(int i=n;i>=1;i--)

        {

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

            {

                    f[i][j]=max(f[i+1][j]+arr[i][j],f[i+1][j+1]+arr[i][j]);//左下角往右上角推

             }

        }

cout<<f[1][1];

        cout<<fh;

}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论