ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: shaowu459

[分享] 吃最多数量苹果问题:双路动态规划(DP)参考解法

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-12 09:48 | 显示全部楼层
初始值k=2和结束值k=20可以单独处理:



图片.jpg

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-12 09:53 | 显示全部楼层
公式简要说明如下:
    =REDUCE(  
        HSTACK("2-1-1", B2),       处理初始值k=2,dp[1]为矩阵左上角值
        ROW(3:20),                    循环k的范围[3,20]
        LAMBDA(x, y,
            IF(
                y = 20,MAX(x) + K11,      如果k=20,返回最终结果=矩阵右下角值+x中最大值
                REDUCE(
                    x,                    保留上层循环的结果,继续堆积
                    SEQUENCE(IF(y < 12, y - 2, 20 - y), , IF(y < 12, 2, y - 9)),   根据k计算第2层循环值
                    LAMBDA(m, n,   
                        REDUCE(  
                            m,                    保留上层循环的结果,继续堆积
                            SEQUENCE(n + (y > 11) * (11 - y), , IF(y < 12, 1, y - 10)), 根据k和x1计算第2层循环值
                            LAMBDA(p, q,   
                                VSTACK(
                                    p,                    累计dp数组
                                    HSTACK(
                                        y & -n & -q,                            连接k-x1-x2  
                                        INDEX(B2#, n, y - n) +        提取矩阵中[x1,k-x1]位置的值
                                         (n > q) * INDEX(B2#, q, y - q) +   提取矩阵中[x2,k-x2]位置的值,但只有在x1>x2的时候才保留,否则变成0
                                            MAX(                            对来源的四种状态取dp的最大值
                                                IFNA(
                                                    VLOOKUP(     在累计dp数组p中查找四种状态值
                                                        y - 1 & {0; 1; 0; 1} - n & {0; 0; 1; 1} - q,   
                                                        p,   累计dp数组  
                                                        2,   
                                                    ),  
                                                )  
                                            )  
                                    )  
                                )   
                            )  
                        )
                    )   
                )  
            )  
        )  
    )



评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-10-12 10:01 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-10-12 16:41 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-10-12 21:52 | 显示全部楼层
就是喝完一瓶白的,估计也还是理不清!

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-12 22:28 来自手机 | 显示全部楼层
edwin11891 发表于 2024-10-12 21:52
就是喝完一瓶白的,估计也还是理不清!

喝了没有

TA的精华主题

TA的得分主题

发表于 2024-10-12 22:48 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
无法企及的巅峰

TA的精华主题

TA的得分主题

发表于 2024-10-12 22:50 来自手机 | 显示全部楼层
老师能否看看我刚发的那个帖子,想了很久都没想出公式的解法,我的版本是365

TA的精华主题

TA的得分主题

发表于 2024-10-13 07:11 | 显示全部楼层
不服不行啊,太 ...太厉害了.......顶礼膜拜

TA的精华主题

TA的得分主题

发表于 2024-10-13 09:16 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
超人老师太厉害啦
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-23 02:33 , Processed in 0.045974 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表