动态规划——整数拆分(python)

思路:

求一个整数,拆分后相乘的最大值。

定义dp数组为,dpi为将数i进行拆分后的相乘最大值。数i可以拆成两个,也可以拆成三个、四个......

拆成两个数:j+(i-j)

拆成多个数:j+dpi-j

状态转移dpi=max(dpi,j*(i-j),j*dpi-j)

复制代码
def IntegerBreak(n):
    dp=[0]*(n+1)
    dp[2]=1
    for i in range(1,n+1):
        for j in range(1,i):
            dp[i]=max(dp[i],j*(i-j),j*dp[i-j])  #和当前的dp[i]、j*(i-j),j*dp[i-j]比较
    print(dp[n])
    return 

def main():
    n=int(input())
    IntegerBreak(n)
if __name__=="__main__":
    main()
相关推荐
moshuying13 小时前
块扩散 + GDN 改造:Clover 把「并行生成」塞进了 Agent 的长上下文里
前端·算法
云和数据.ChenGuang13 小时前
Python 常见特殊方法详解:__new__、__init__、__del__、__str__、__repr__ 与 __getattribute__
开发语言·人工智能·python·1024程序员节
没落之王13 小时前
历史系统建模:宋初太祖太宗「再立天庭」秩序重构推演
人工智能·算法·重构
xyouyuweizhu13 小时前
字节流与字符流:Java IO 的两条主线该怎么选
java·开发语言·python
迪菲赫尔曼13 小时前
【基础篇 04】第一次使用终端:命令在哪里输入,电脑现在又“站”在哪里?
python·yolo·目标检测
INGNIGHT14 小时前
91 · 最小调整代价(序列dp)
数据结构·算法·leetcode
moshuying14 小时前
扩散模型开始写代码、开网页了:350 亿参数,速度比 Jev 快一倍
前端·算法
qianbo_insist14 小时前
# 在 Qwen3.5-2B 上把 GDN-1 无损换成 GDN-2:一次完整的架构手术实验(负结果)
人工智能·pytorch·python·架构
小超人诞生日记14 小时前
C++ 异常机制详解:从抛出捕获到异常安全
c++·算法
labuladong15 小时前
机器学习&神经网络 系列教程上线
神经网络·算法·机器学习