博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
动态规划----数塔问题
阅读量:5220 次
发布时间:2019-06-14

本文共 989 字,大约阅读时间需要 3 分钟。

一、问题描述

从数塔顶层出发,每个结点可以选择向左走或向右走,要求一直走到塔底,使得走过的路径上的数值和最大。

如上图所示的数塔,最大路径和为86,经过的路径从塔顶到塔底为13,8,26,15,24。

二、问题分析

要求的最大值可以从地形开始也可以从上面开始

动态规划函数为:

resultTower[i][j] = tower[i][j] + Math.max(tower[i + 1][j],tower[i + 1][j + 1]);

 

边界值resultTower[heigh - 1][j] = tower[heigh - 1][j];

/*Author::若尘*/#include
#include
#include
#include
#include
using namespace std;int dp[1002][1002];int main() { int t; scanf("%d", &t); int count = 1; while (t--) { memset(dp, 0, sizeof(dp)); int n, m; scanf("%d%d", &n, &m); for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { scanf("%d", &dp[i][j]); } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { dp[i][j] += max(dp[i-1][j], dp[i][j-1]); } } printf("Scenario #%d:\n", count++); printf("%d\n\n", dp[n][m]); }}

 

转载于:https://www.cnblogs.com/a863886199/p/8646357.html

你可能感兴趣的文章
jsp组成元素
查看>>
排序算法(转)
查看>>
windows自带的可生成各种数据库连接字符串工具打开方法
查看>>
Python命名规范
查看>>
滚动条
查看>>
程序员的自我修养九Windows下的动态链接
查看>>
Codeforces Round #361 (Div. 2)
查看>>
细说WebSocket - Node篇
查看>>
[洛谷1485] 火枪打怪
查看>>
Extjs控件之 grid打印功能
查看>>
枚举类型(不常用)递归
查看>>
minggw 安装
查看>>
Jquery操作cookie,实现简单的记住用户名的操作
查看>>
[BZOJ1196][HNOI2006]公路修建问题 二分答案+最小生成树
查看>>
【原创】大数据基础之Zookeeper(4)应用场景
查看>>
静态变量数组实现LRU算法
查看>>
在SQL中怎么把一列字符串拆分为多列
查看>>
中文系统 上传file的input显示英文
查看>>
比callback更简洁的链式执行promise
查看>>
android permission
查看>>