社区
Java
帖子详情
数塔问题
csdn_yzm
2016-01-11 03:25:51
如图所示的数字三角形,从顶部出发,在每一结点可以选择向左走或向右走,一直走到底层。试设计一个算法,计算出从三角形的顶至底的一条路径,使该 路径经过的数字总和最大。
要用图形界面,根据输入数塔的高度自动生成数塔吊,并给出数塔从顶部到低部的路径。
...全文
547
1
打赏
收藏
数塔问题
如图所示的数字三角形,从顶部出发,在每一结点可以选择向左走或向右走,一直走到底层。试设计一个算法,计算出从三角形的顶至底的一条路径,使该 路径经过的数字总和最大。 要用图形界面,根据输入数塔的高度自动生成数塔吊,并给出数塔从顶部到低部的路径。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
心随自在飞
2016-01-11
打赏
举报
回复
借鉴: 设有一个三角形的数塔,顶点为根结点,每个结点有一个整数值。从顶点出发,可以向左走或向右走,如图所示: 动态规划经典问题 要求从根结点开始,请找出一条路径,使路径之和最大,只要输出路径的和。 【代码】 // // 例题1 三角数字塔问题 // // #include <stdio.h> #include <stdlib.h> #define MAXN 101 int n,d[MAXN][MAXN]; int a[MAXN][MAXN]; void fnRecursive(int,int); //递推方法函数声明 int fnMemorySearch(int,int); //记忆化搜索函数声明 int main() { int i,j; printf("输入三角形的行数n(n=1-100):\n"); scanf("%d",&n); printf("按行输入数字三角形上的数(1-100):\n"); for(i=1; i<=n; i++) for(j=1; j<=i; j++) scanf("%d",&a[i][j]); for(i=1; i<=n; i++) for(j=1; j<=i; j++) d[i][j]=-1;//初始化指标数组 printf("递推方法:1\n记忆化搜索方法:2\n"); int select; scanf("%d",&select); if(select==1) { fnRecursive(i,j);//调用递推方法 printf("\n%d\n",d[1][1]); } if(select==2) { printf("\n%d\n",fnMemorySearch(1,1));//调用记忆化搜索方法 } else printf("输入错误!"); return 0; } void fnRecursive(int i,int j) //递推方法实现过程 { for(j=1; j<=n; j++) d[n][j]=a[n][j]; for(i=n-1; i>=1; i--) for(j=1; j<=i; j++) d[i][j]=a[i][j]+(d[i+1][j]>d[i+1][j+1]?d[i+1][j]:d[i+1][j+1]); } int fnMemorySearch(int i,int j) //记忆化搜索实现过程 { if(d[i][j]>=0) return d[i][j]; if(i==n) return(d[i][j]=a[i][j]); if(fnMemorySearch(i+1,j)>fnMemorySearch(i+1,j+1)) return(d[i][j]=(a[i][j]+fnMemorySearch(i+1,j))); else return(d[i][j]=(a[i][j]+fnMemorySearch(i+1,j+1))); } 希望能帮助到你!
《数据结构及算法经典》源代码.
目录: 单元加 字符 底层编程 效验算法 数学
问题
数据结构 数组 文件程序 求进制 汉诺塔 硬币情况 逆阵
问题
算法 小写数字转为大写数字 其它 <br/>...
200个经典C程序【源码】
063 汉诺塔
问题
064 哈夫曼编码 065 图的深度优先遍利 066 图的广度优先遍利 067 求解最优交通路径 068 八皇后
问题
069 骑士巡游 070 用栈设置密码 071 魔王语言翻译 072 火车车厢重排 073 队列实例 074 K...
动态规划:
数塔
问题
动态规划
问题
我训练过一些题目,但是感觉自己掌握的还不是特别好! 下面以一道经典的动态规划题目说明动态规划算法的思想,文末会官方的给出对动态规划的文字叙述。...在用动态规划考虑
数塔
问题
时
动态规划
问题
实验:
数塔
问题
数塔
问题
是一个经典的动态规划
问题
,它描述了一个由数字组成的三角形结构,要求从顶部开始向下走,每次只能走到相邻的位置,最终到达底部,使得经过的数字之和最大。
数塔
问题
可以用一个二维数组来表示,其中第i行有i...
c语言动态规划算法
数塔
问题
,动态规划之
数塔
问题
...
无奈楼翰诚大佬的
数塔
问题
是在没讲清楚,也只好自己写一个...
数塔
问题
嘛...已经有很多大佬讲过了,比如这位令人熟悉的大佬BUT!实际上关于这种从下往上的DP其实对于这道题完全可以从上往下DP...给张图: 各位大佬们的...
Java
50,530
社区成员
85,610
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章