如何确定 n 高数字金字塔中的最大路线成本

2024-06-26

我有一个像这样的数字金字塔

       7
      4 8
     1 8 9
    2 4 6 7
   4 6 7 4 9
  4 9 7 3 8 8

routes: 32

每个数字都按其系列中的强大程度进行索引。

 0 ( 9 => 1 ) 1 ( 8 => 5 ) 2 ( 8 => 4 ) 3 ( 7 => 2 ) 4 ( 4 => 0 ) 5 ( 3 => 3 )
 0 ( 9 => 4 ) 1 ( 7 => 2 ) 2 ( 6 => 1 ) 3 ( 4 => 3 ) 4 ( 4 => 0 )
 0 ( 7 => 3 ) 1 ( 6 => 2 ) 2 ( 4 => 1 ) 3 ( 2 => 0 )
 0 ( 9 => 2 ) 1 ( 8 => 1 ) 2 ( 1 => 0 )
 0 ( 8 => 1 ) 1 ( 4 => 0 )
 0 ( 7 => 0 )

在这个金字塔中有 2^(n-1) 条路线(每个数字可以走 2 条路) 如果金字塔高这么低,你很容易计算出所有的路线,并相互比较。但如果你有一个 50 高的金字塔,有 562949953421312 条路线,那么问题就有点困难了。

我以为我从最底层开始,从最强大的数字开始,但很快我意识到,最大路线成本不一定以大数字开始或结束。

然后我想也许二级索引(你可以从一个数字进一步了解哪里)会有所帮助,但我什至没有实现它,因为我认为它仍然使用大量资源并且不是最佳的。

现在我很困惑如何重新开始思考这个问题......任何建议表示赞赏


将您的金字塔视为一棵树,根位于金字塔顶部:我认为您希望从根到任何叶节点(金字塔底部)具有最大成本的路线。好吧,它实际上不是一棵树,因为一个节点可能有两个父节点,实际上您可以在级别上访问节点i级别上最多有两个节点i-1.

不管怎样,我认为你可以通过动态规划来计算出成本最大的路线。让我以类似矩阵的方式重写您的数据:

7 
4 8 
1 8 9 
2 4 6 7 
4 6 7 4 9 
4 9 7 3 8 8

并让矩阵的缺失元素为0。我们称这个矩阵为v(对于值)。现在您可以构建一个矩阵c(费用)其中c(i,j)是到达位置处的树节点的最大成本(i,j)。您可以使用以下递归式来计算它:

c(i,j) = v(i,j) + max{ c(i-1,j-1), c(i-1,j) }

where c(h,k)当到达矩阵外的某个位置时,值为 0。本质上我们说的是到达位置节点的最大成本(i,j)是节点本身的成本加上到达其两个可能父级的成本之间的最大值i-1.

Here is c对于你的例子:

7     
11 15    
12 23 24   
14 27 30 31  
18 33 37 35 40 
22 42 44 40 48 48

例如,我们以i=3, j=2:

c(3,2) = v(3,2) + max{ c(2,1), c(2,2) }
       = 6      + max{ 23    , 24     }
       = 30

From c您会看到最昂贵的溃败花费 48(并且您有两个)。

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

如何确定 n 高数字金字塔中的最大路线成本 的相关文章

  • 如何在 .css 文件中使用 php 变量

    我有一个名为test css我想用它 var var is at test php test css附于test php 我的结构是这样的 test php 这是 test css test css
  • 改变了 (un)serialize() 的行为?

    编辑 问题是现在已记录的 php 错误 https bugs php net bug php id 71617 https bugs php net bug php id 71617感谢您找到那个 Danack 我刚刚将应用程序从 PHPH
  • 使用php从图像中获取第一个像素

    我正在尝试获取图像的第一个像素 最好是最左上角或最右上角的一个像素 我看到了这个问题 它有最接近我的问题的答案 获取图像颜色 https stackoverflow com questions 1746530 get image color
  • PHP CLI 有几秒钟的延迟

    当我在 CLI 模式下运行 PHP 时 CentOS 6 5 下的 PHP 5 6 6 使用 VirtualBox 作为虚拟机运行 即使我只检查版本并且禁用 php ini 文件 也会有几秒钟的延迟 time php n v PHP 5 6
  • XMLHttpRequest() 并输出 csv 文件

    我可以通过向新窗口发出 html 表单 POST 并使用 PHP 响应来成功生成 csv 文件 header Content type text csv header Content Disposition attachment filen
  • 检测360度转弯算法

    我成功检测到手机绕轴的 0 360 度旋转 滚动 但现在我很难设计一种有效的算法来检测一整圈 我的工作但我认为不像我想要的那样优雅和有效的算法是 private boolean detectRoll private boolean chec
  • 销毁Session但保留flashdata

    我在用坦克验证 http www konyukhov com soft tank auth 用于我的 CI 1 7 3 应用程序中的用户管理 一切工作正常 但我正在尝试设置flash message当用户注销时显示 问题是 this gt
  • Apache 在多个虚拟主机上运行 Zend Framework 时出现间歇性 500 错误

    我们已经在一个项目上工作了几个月 没有出现任何问题 直到最近进行了一系列更新 服务器运行 Amazon Linux AMI 版本 2010 11 1 Apache 2 2 16 和 PHP 5 3 3 该项目分为几个独立的开发人员分支 作为
  • 为什么在打开的文件上取消链接成功?

    为什么打开的文件被删除了 在 Windows Xamp 上 我收到消息 仍在工作 但在其他 PHP 服务器上 文件被删除 即使它已打开 并且我收到消息 文件已删除 我也可以从 FTP 删除文件 即使第一个脚本仍在工作 UNIX 系统通常允许
  • 如何在会话过期后自动更新数据库而不刷新我的页面

    您需要刷新或单击该代码 然后它才会转到索引页面 并且在会话过期后更新数据库之前 如何让会话过期后自动更新数据库 使用户活跃度为0 而无需刷新或点击页面 idletime 3600 after 1hr the user gets logged
  • WordPress、PHP、URL 编码问题

    Wordpress 提供了一个名为 the permalink 的函数 您猜对了 在帖子循环中返回给定帖子的永久链接 我正在尝试对该永久链接进行 URL 编码 当我执行此代码时 它以 HTML 形式生成以下结果 http
  • 仅限使用一张优惠券,删除 Woocommerce 中之前使用的其他优惠券

    我正在动态制作优惠券以使用用户电子邮件作为优惠券 但如何限制用户每个购物车仅使用一张优惠券 如果使用多个自动从购物车中删除前一个 add filter woocommerce get shop coupon data generate co
  • 如何在 Windows 上以纯 PHP 形式提取 .tar 文件?

    我有一个 PHP 脚本 我想在 Windows 上运行 我需要提取 tar 文件 如何提取 tar 文件 我知道 PharData 类 它可以在 Linux 上运行 但不能在 Windows 上运行 我的脚本就死了 没有错误输出或任何东西
  • 如何将parameters.yml中的Symfony参数注入Behat 3配置中?

    我需要设置base url for Behat MinkExtension 这是我的一部分应用程序 配置 parameters yml parameters behat base url http my app local app test
  • 更改二维数组每一行中的键而不丢失值

    我有一个行数组 其中一个 视觉 数据列有两个相似但不同的键 我想替换其中一个键 以便该列在所有行中具有相同的键 我的输入数组 Ttitle gt lilly Price gt 1 75 Number gt 3 Title gt rose P
  • PHPExcel - 如何使用 preg_replace 替换文本

    我正在使用 PHPExcel 将数据库中的数据提取到组织好的 Excel 工作表中 除了一件事之外 一切都运转良好 我的数据库条目有时可能包含 HTML 标记 例如 strong strong br p p 等等 所以我设法让这个 PHP
  • 在 foreach 循环中使用 next

    我正在使用 foreach 循环数组 在特定情况下 我需要在迭代到达下一个元素 如预测 之前知道下一个元素的值 为此 我计划使用该功能next http www php net manual en function next php 在文档
  • 将查询错误转变为 MySQLi 中的异常[重复]

    这个问题在这里已经有答案了 我试图将 MySQLi 查询错误转为异常 但无法 mysqli sql 异常 http php net manual en class mysqli sql exception php仅当连接数据库失败时才会抛出
  • 一系列 unicode 点的正则表达式 PHP

    我正在尝试从字符串中删除所有字符 除了 字母数字字符 美元符号 下划线 代码点之间的 Unicode 字符U 0080 and U FFFF 通过这样做 我得到了前三个条件 preg replace a zA Z d foo 我如何去满足第
  • 特殊字符和 URL 重写

    我目前正在开发一个应用程序 该应用程序从暴雪社区 API 中提取 JSON 数据并使用 PHP 对其进行解析 一切正常 直到我遇到一个名字中有特殊字符的角色 为了提取角色数据 我需要知道他们的角色名称和他们所在的领域 我将名称和领域通过 U

随机推荐