线性动归1---数字三角形及动归模型

2023-11-08

学习目标:

1、了解动归
2、能用动归解决的条件
3、使用动归解题的一般步骤

学习内容:

一、数字三角形1.0
【题目描述】
观察下面的数字金字塔。写一个程序查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以从当前点走到左下方的点也可以到达右下方的点。
在这里插入图片描述

在上面的样例中,从13到8到26到15到24的路径产生了最大的和86。

【输入格式】

第一个行包含R(1≤ R≤1000),表示行的数目。

后面每行为这个数字金字塔特定行包含的整数。

所有的被供应的整数是非负的且不大于100。

【输出格式】

单独的一行,包含那个可能得到的最大的和。

样例数据

input

5

13

11 8

12 7 26

6 14 15 8

12 7 13 24 11

output

86

数据规模与约定

时间限制:1exts1exts

空间限制:256extMB

先思考再学习:

【题解】

• a[i][j]表示第i行第j列上的数值
• 从上往下走
• f[i][j]表示从第一行数到第i行第j列上数的最大路径之和
• (i, j)位置只能从(i-1, j)或(i-1, j-1)位置到达
• 故f[i ][j]= a[i][j]+maxn(f[i-1][j],f[i-1][j-1])

• ans = max{ f[n][i] | 1<=i<=n}
• 从下往上走
• f[i][j]表示第i行第j列上数到达底端的最大路径之和
• (i, j)位置只能去往(i+1, j)或(i+1, j+1)位置
• 故f[i ][j]= a[i][j]+max(f[i+1][j],f[i+1][j+1])

ans=f[1][1]

【代码】

#include<iostream>
#include<cmath>
using namespace std;
int a[100][100],i,j,n;
int main()
{
	cin>>n;
	for(i=1; i<=n; i++)
    	for(j=1; j<=i; j++)
	cin>>a[i][j];
	for(i=n-1; i>=1;i--)
	  for(j=1; j<=i; j++)
	a[i][j]=a[i][j]+max(a[i+1][j],a[i+1][j+1]);
	cout<<"max="<<a[1][1];
}

使用动归解题的条件:

  1. 问题具有最优子结构性质。如果问题的最优解所包含的 子问题的解也是最优的,我们就称该问题具有最优子结 构性质。

    1. 无后效性。当前的若干个状态值一旦确定,则此后过程的演变就只和这若干个状态的值有关,和之前是采取哪种手段或经过哪条路径演变到当前的这若干个状态,没有关系。

使用动归解题的一般步骤

一、确定状态
这是重中之重。一般而言状态的设定都是与所求有很大的相关性的,所以,可以从此处入手。
二、确定状态的边界条件
三、确定状态转移方程

简单动归题目

体会一下上面的分析问题方法。
1、上台阶
2、上台阶2
3、前缀最大值
4、踩方格

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

线性动归1---数字三角形及动归模型 的相关文章

  • 使用 gcc 在 Linux 上运行线程构建块 (Intel TBB)

    我正在尝试为线程构建块构建一些测试 不幸的是 我无法配置 tbb 库 链接器找不到库 tbb 我尝试在 bin 目录中运行脚本 但这没有帮助 我什至尝试将库文件移动到 usr local lib 但这又失败了 任何的意见都将会有帮助 确定您
  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • BASIC 中的 C 语言中的 PeekInt、PokeInt、Peek、Poke 等效项

    我想知道该命令的等效项是什么Peek and Poke 基本和其他变体 用 C 语言 类似PeekInt PokeInt 整数 涉及内存条的东西 我知道在 C 语言中有很多方法可以做到这一点 我正在尝试将基本程序移植到 C 语言 这只是使用
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • Java设计模式——单例模式(Singleton Pattern)

    从上一篇文章Java设计模式 装饰模式 Decorator Pattern 中估计大家都已经对java设计模式有了初步的理解 今天呢 阿Q就给大家讲一下另一种设计模式 单例设计模式 首先我们先来了解一下它的概念 单例模式是设计模式中最简单的
  • Java架构直通车——Java基础面试考点清单

    文章目录 基础 J U C jvm虚拟机 数据结构 算法 Spring RPC通信框架 网络通信 MQ 缓存 Mybatis 其他技术 基础 强引用 弱引用 虚引用 软引用 final关键字的作用 方法 变量 类 泛型 泛型继承 泛型擦除
  • 谷歌浏览器常用插件

    1 高对比度模式 调节流量器界面的颜色方案 挑选自己喜欢的效果 2 Pocket 将浏览过的网站收藏到这里 方便后续阅读 未完待续
  • python实现分页功能

    python实现分页功能 class Pagination def init self current page per page num 10 self per page num per page num if not current p
  • python画箱线图代码_箱线图(Python代码)

    箱线图 理论 懒得介绍了 用五位数描述数据 能够准确稳定地描绘出数据的离散分布情况 不受异常值影响 不能精确地衡量数据分布的偏态和尾重程度 对于批量比较大的数据 反映的信息更加模糊以及用中位数代表总体评价水平有一定的局限性 plt boxp
  • go 进阶 go-zero相关: 四. 服务注册原理

    目录 一 基础 二 resolver 服务注册底层原理 1 创建registerEtcd函数 并将该函数封装到keepAliveServer结构体中 2 执行registerEtcd函数实现服务注册 3 registerEtcd 服务注册详
  • 从编程角度看SSL协议(2)ssl库--SSLContext类

    1 SSLContext类介绍 ssl库中除了提供SSLSocket类以外 还提供了SSLContext类 相比于SSLSocket类 SSLContext提供了丰富的属性 供我们修改和查看SSL握手时的参数 我们可以通过以下命令来实例化S
  • vue day02 error

    搭建路由的时候出问题了 但是最后貌似没有报错 我估计是版本兼容的问题 目前项目运行时没问题 也显示安装成功 看看以后使用会不会出问题吧 C Users little shark Desktop project SPH app gt cnpm
  • uni-app实现再次返回退出应用时不退出应用而是在后台运行

    如果APP需要后台驻留 用户返回到首页时会提示退出操作 我们可以不退出而是隐藏至后台 这样的话APP就会在后台运行 以下代码须写在main js里面 弹出的内容可自定义设 置 ifdef APP PLUS let main plus and
  • Python 将控制台输出另存为日志文件

    文章目录 Python 将控制台输出另存为日志文件 需求 方法一 使用 Logger 类 推荐 方法二 仅使用 sys 方法三 使用 logging 模块 参考文献 Python 将控制台输出另存为日志文件 需求 在 PyCharm 中或者
  • Linux底层开发之四书五经

    操作系统 Linux 内核设计与实现 第2 版 深入理解Linux 内核 第二版 Linux内核分析与编程 Linux方面的好书最多 其中 Linux 内核设计与实现 第2 版 Robert Love著 机械工业出版社出版译著 属短小精悍之
  • AI帮个忙(网页)

    首先 AI帮个忙站内目前有25种AI工具 主要包含有周报日报生成器 总结概括小助手 视频脚本生成器 小红书风格模拟器 餐厅或商品点评器 节日祝福 夸夸小助手 哄女朋友小助手 帅锅小助手等等多种有趣并且实用的小工具 在使用时也是非常简单的 找
  • 《银行法律法规》三、银行管理——2、公司治理、 内部控制与合规管理

    第二章 公司治理 内部控制与合规管理 第一节 公司治理 考点1 银行公司治理概述 商业银行公司治理是指股东大会 董事会 监事会 高级管理层 股东及其他利益相关者之间的相互关系 包括组织架构 职责边界 履职要求等治理制衡机制 以及决策 执行
  • 1071 小赌怡情(15 分) java

    1071 小赌怡情 15 分 常言道 小赌怡情 这是一个很简单的小游戏 首先由计算机给出第一个整数 然后玩家下注赌第二个整数将会比第一个数大还是小 玩家下注 t 个筹码后 计算机给出第二个数 若玩家猜对了 则系统奖励玩家 t 个筹码 否则扣
  • MySQL 对字符串使用 STR_TO_DATE() 函数

    Ptw cwl 前面我们利用 date formate 函数 按照自己希望的格式来输出日期时间 我们从用户界面接收到的信息都是以字符串的形式在进行传递 如何把字符串转换为日期类型进行存储呢 可使用 str to date 函数 把字符串转换
  • 【Ardunio小车】智能小车组装

    一 材料和工具 原智能小车底盘 电机 电池槽 5号电池 残缺一角的2WD V15智能小车底板 电机驱动板 ardunio板 剪钳 二 过程 1 用剪钳把残缺的底板剪规整 2 将长脚螺丝固定在原底盘上 3 在长脚螺丝上加上螺帽 4 找到合适的
  • 罗技鼠标 MM Mx Master 2 掉帧的一种解决方法

    入手MM已经月余了 不得不说这是MAC下的相当有力的助手 但是这几天发现掉帧严重 要不就卡 要不就飞 网上说需要调整蓝牙和wifi 的服务顺序 我也调整了 无效 忽然发现蓝牙设备里面有两个 MM 链接 因为MM可以同时接三个设备 而我不知道
  • TS实现原生数组方法之slice()

    function slice description 返回一个新的数组对象 这一对象是一个由 begin 和 end 决定的原数组的浅拷贝 不改变原数组 param begin 可选参数 提取起始处的索引 省略则默认为0 param end
  • sharepoint 2013 部署步骤“添加解决方案”中出现错误: 已在此服务器场中安装 ID 为{guid}的功能。请使用强制属性显式地重新安装此功能。

    在部署sharepoint 2013解决方案wsp包时 出现一个错误 部署步骤 添加解决方案 中出现错误 已在此服务器场中安装 ID 为 735efe4e 8b50 4310 b588 c6ae2ba0759f 的功能 请使用强制属性显式地
  • 线性动归1---数字三角形及动归模型

    学习目标 1 了解动归 2 能用动归解决的条件 3 使用动归解题的一般步骤 学习内容 一 数字三角形1 0 题目描述 观察下面的数字金字塔 写一个程序查找从最高点到底部任意处结束的路径 使路径经过数字的和最大 每一步可以从当前点走到左下方的