14-剪绳子

2023-11-03

题目:给你一根长度为n的绳子,请把绳子剪成m段(m,n都是整数,且都大于1),每段绳子的长度记为k[0],k[1],...k[m]。请问k[0]*k[1]*k[2]*...*k[m]可能的最大成绩是多少?

def max_product_cut(n):
    if n<2:
        return 0
    if n == 2:
        return 1
    if n == 3:
        return 2
    i = 4
    j = 1
    products = [0 for i in range(n+1)]
    products[1] = 1
    products[2] = 2
    products[3] = 3

    while i<=n:
        max = 0
        j=2
        while j<=i//2:
            res = products[j]*products[i-j]
            if max<res:
                max = res
            j+=1
        products[i] = max

        i+=1

    return products[-1]

注:

使用动态规划,products[i]存储长度为i的绳子最大乘积。本地巧妙在于,整段绳子n的最大乘积,只要求出n/2的最大乘积即可,剩下的部分在数组的前半部分已经计算存储。状态方程为f(n)=max(f(i)*f(n-i))

转载于:https://www.cnblogs.com/kingshine007/p/11348693.html

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

14-剪绳子 的相关文章

  • 01背包问题变种:从长度为n的数组里选出m个数使和为固定值sum

    这个问题是我从leetcode上一道问题所想到的 原题 如果是从数组中选出2个数相加使之成为固定的数sum 这当然很简单 把数组中的数字遍历一遍 判断另一个数字是否也在数组中即可 代码如下 vector
  • netty handler的执行顺序(3)

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 今天解决2个问题 1 handler在pipeline当中究竟是如何存储的 2 在遍历handler的过程中 会根据event的不同 调用不同的handler 这一点是如何
  • BP神经网络与Python实现

    人工神经网络是一种经典的机器学习模型 随着深度学习的发展神经网络模型日益完善 联想大家熟悉的回归问题 神经网络模型实际上是根据训练样本创造出一个多维输入多维输出的函数 并使用该函数进行预测 网络的训练过程即为调节该函数参数提高预测精度的过程
  • 白盒测试相关的一些知识

    在白盒测试中 可以使用各种测试方法进行测试 下面这篇文章 可能比较枯燥 如果不乐意读 可以先收藏 如果在你的工作中真遇到白盒测试的话 可以回过头再来看看 还是值得读一读 一般来说 白盒测试时要考虑以下5个问题 1 测试中尽量先用自动化工具来
  • 数据结构之链表与线性表

    数据结构之链表与线性表 线性表 顺序线性表 顺序表 顺序线性表 使用数组实现 一组地址连续的存储单元 数组大小有两种方式指定 一是静态分配 二是动态扩展 优点 随机访问特性 查找O 1 时间 存储密度高 逻辑上相邻的元素 物理上也相邻 缺点
  • 逆波兰表达式求值(C语言实现)

    实验项目 从文本文件输入任意一个语法正确的 中缀 表达式 显示并保存该表达式 利用栈结构 把上述 中缀 表达式转换成后缀表达式 并显示栈的状态变化过程和所得到的后缀表达式 利用栈结构 对上述后缀表达式进行求值 并显示栈的状态变化过程和最终结
  • DDP入门

    DDP 即动态动态规划 可以用于解决一类带修改的DP问题 我们从一个比较简单的东西入手 最大子段和 带修改的最大子段和其实是常规问题了 经典的解决方法是用线段树维护从左 右开始的最大子段和和区间最大子段和 然后进行合并 现在我们换一种方法来
  • 手把手教你实现一个向量

    文章目录 什么是向量 向量提供哪些接口 实现 宏定义 定义类 成员变量 构造函数与析构函数 构造函数 析构函数 成员函数 size get r put r e expand insert r e remove lo hi remove r
  • Hash映射理解

    先说数组 数组优点之一 能通过索引很快定位到值 hashmap 就是利用了数组这个优点 对比 线性映射 定义一个数组 数组的元素是结构体 结构体包括 一对键 值 伪代码表示 a 0 struct Bill 5 a 1 struct KK 6
  • 亚利桑那州立大学周纵苇:研习 U-Net ——现有的分割网络创新

    雷锋网AI研习社按 经典的 Encoder Decoder 结构在目标分割问题中展现出了举足轻重的作用 然而这样一个相对固定的框架使得模型在感受野大小和边界分割精度两方面很难达到兼顾 本次公开课 讲者以 U Net 为案例分析 总结现有的分
  • 数据结构之图的两种遍历实现(C语言版)

    上一期文章分享完了图的两种遍历方式 也是两种很重要的算法 DFS和BFS 这两种算法的应用和重要性我就不多说了 内行的人懂的都懂 今天这文章重要就是来上机实现这两种算法 又由于这两种算法都可以由邻接矩阵和邻接表来表示 博主分享的代码都是上机
  • OJ-合并两个有序链表

    题目描述 代码如下 Definition for singly linked list struct ListNode int val struct ListNode next struct ListNode mergeTwoLists s
  • 数据结构与算法-列表(双向链表)设计及其排序算法

    0 概述 本文主要涵盖列表 双向链表 的设计及其排序算法的总结 列表是一种典型的动态存储结构 其中的数据 分散为一系列称作节点 node 的单位 节点之间通过指针相互索引和访问 为了引入新节点或删除原有节点 只需在局部调整少量相关节点之间的
  • 时间复杂度+常见复杂度解释

    前言 算法的效率 虽然计算机能快速的完成运算处理 但实际上 它也需要根据输入数据的大小和算法效率来消耗一定的处理器资源 要想编写出能高效运行的程序 我们就需要考虑到算法的效率 算法的效率主要由以下两个复杂度来评估 时间复杂度 评估执行程序所
  • 查找数组中第二大的数

    快速找出一个数组中的最大数 第二大数 思路 如果当 前元素大于最大数 max 则让第二大数等于原来的最大数 max 再把当前元素的值赋给 max 如果当前的元素大于等于第二大数secondMax的值而小于最大数max的值 则要把当前元素的值
  • 插入排序超详解释,一看就懂

    目录 一 插入排序的相关概念 1 基本思想 2 基本操作 有序插入 二 插入排序的种类 三 直接插入排序 1 直接插入排序的过程 顺序查找法查找插入位置 2 使用 哨兵 直接插入排序 四 直接插入排序算法描述 五 折半插入排序 1 查找插入
  • 数组实现循环队列(增设队列大小size)

    目录 一 前言 1 如何实现循环 2 如何判断队列为空 3 如何判断队列为满 二 循环队列的结构定义 三 循环队列的创建及其初始化 四 入队 五 出队 六 取队头元素 七 取队尾元素 八 循环队列判空 九 循环队列判满 十 循环队列销毁 一
  • 【数据结构入门精讲 | 第二篇】一文讲清算法复杂度

    上篇文章中我们引入了算法 数据结构 数据类型等概念 而要想衡量一个算法与数据结构是否为优质的 就需要一个衡量标准 这个衡量标准也是在我们实现一个好的算法时要遵循的原则 目录 基本概念 渐进性态 渐进性态数学表征 算法复杂度的运算 顺序搜索算
  • 【数据结构】双链表的定义和操作

    目录 1 双链表的定义 2 双链表的创建和初始化 3 双链表的插入节点操作 4 双链表的删除节点操作 5 双链表的查找节点操作 6 双链表的更新节点操作 7 完整代码 嗨 我是 Filotimo 很高兴与大家相识 希望我的博客能对你有所帮助
  • 高精度运算合集,加减乘除,快速幂,详细代码,OJ链接

    文章目录 零 前言 一 加法 高精度加法步骤 P1601 A B 二 减法 高精度减法步骤

随机推荐

  • leetcode:最长公共前缀

    编写一个函数来查找字符串数组中的最长公共前缀 如果不存在公共前缀 返回空字符串 示例 1 输入 strs flower flow flight 输出 fl 示例 2 输入 strs dog racecar car 输出 解释 输入不存在公共
  • GROMACS在虚拟机上Linux系统的安装教程

    GROMACS在虚拟机上Linux系统的安装教程 一 安装cmake所需的gcc及c 1 直接执行此命令行 sudo apt install y g gcc sudo apt install build essential sudo apt
  • 二、 在Sails中使用Typescript

    文章目录 Typescript 基础 Typescript 安装 TypeScript 问题 最简单的改造 Sails重定义 Waterline Orm 重写Models Typescript 重写控制器 User Model的进一步优化
  • HTML5小组件

    10 CSS3社交关系网模拟动画 这次我们要给大家分享一款CSS3模拟社交关系网的动画特效 社交网的中心是用户的头像图片 由中心连线展开到各个社交网络的Logo图片 同时每一条连接线上面都会有一个圆点由中心向各个节点移动 形成关系网的模拟动
  • 联想小新系列win10系统使用IDEA经常闪退,蓝屏,死机,饱受折磨

    出现这种情况的 而且也是小新系列的 确定了是IDEA与电脑冲突导致的 解决办法在文末 经历介绍 阶段一 2020 7 12换的电脑 联想小新系列的 大概一周后官网下载了IDEA2020 1 3版本 安装后网上搜了一个破解工具成功激活了 但是
  • QT笔记(四):在窗口中添加背景图片时并且不覆盖其控件原来样子

    1 文章一 https blog csdn net yuxiangdeming article details 78352841 在构造函数中添加 this gt setObjectName dialog 这句话一定要有 不然 整个界面上的
  • 【Linux篇】TCP 编程

    include
  • [GO语言基础] 三.变量声明、数据类型、标识符及编程练习12题

    作为网络安全初学者 会遇到采用Go语言开发的恶意样本 因此从今天开始从零讲解Golang编程语言 一方面是督促自己不断前行且学习新知识 另一方面是分享与读者 希望大家一起进步 前文介绍了Go的编译运行 语法规范 注释转义及API标准库知识
  • vue之事件修饰符详解( .stop、.prevent、 .capture 、.self、.once、passive)

    stop 是阻止冒泡行为 不让当前元素的事件继续往外触发 如阻止点击div内部事件 触发div事件 prevent 是阻止事件本身行为 如阻止超链接的点击跳转 form表单的点击提交 self 是只有是自己触发的自己才会执行 如果接受到内部
  • Java后端实现分页效果

    前言 在我们的Java项目中 分页是必不可少的数据展示页面所以这篇博客主要讲分页的实现 在我们的开发当中 前后端之间数据交互是必不可少的 如果数据比较多 就需要进行数据封装 拿到前端进行页面的展示 第一步 准备工具类 用作数据封装 拿到前端
  • 惠普台式计算机系统系统修复,一键恢复系统,详细教您怎么一键恢复惠普笔记本系统...

    我们在使用电脑的时候 有的时候会遇到一些电脑上的问题 例如电脑开机没反应 电脑蓝屏 死机等 解决这些问题的方法之一就是恢复系统 那么我们要怎么操作呢 今天小编就告诉你们惠普笔记本要怎么一键恢复系统 最近小编在浏览网页的时候看到有小伙在谈论惠
  • echarts 解决xAxis,yAxis 数据字符长度过长问题

    axisTick alignWithLabel true interval 0 rotate 30 margin 15 axisLabel interval 0 rotate 40
  • 代码随想录算法训练营第三十一天

    补作业 开启贪心算法的学习
  • 【项目实战】如何使用Postman调用WebSocket程序

    一 背景说明 项目中需要使用WebSocket进行通信 开发完了WebSocket接口 总得测试吧 以下是Postman调用WebSocket程序的方法 二 注意事项 2 1 为啥选Postman 最近都在用ApiFox做接口调用 但是目前
  • 以太坊之三状态树

    正在学习区块链 如果我哪里有错误希望大家指出 如果有任何想法也欢迎留言 这些笔记本身是在typora上写的 如果有显示不正确的敬请谅解 笔记本身也是给我自己写的 所以如果有侵权的请通知我 我立即删除 3 状态树 这个数据结构的目的很明显 为
  • “你已被移出穷人群”

    壹心理创作者 触角 本文转载自壹心理旗下最有料公众号 心理公开课 ID yixinligongkaike 01 关于 贫穷 我们受到的恐吓不下10000次 中国的年轻人 光是今年 受到贫穷的恐吓就可能不下10000次 一篇细致描绘北漂生活的
  • MySQL的存储过程中使用游标来接收查询结果集

    我们如果要在MySQL的存储过程中遍历一个查询语句的结果集 需要使用到游标cursor SQL server中可以定义表类型的变量Table 但MySQL中不行 只能用游标 假设我需要从 tb stu 这张表中查询出所有记录插入到tb st
  • 基于Linux的智能车载监控系统设计

    目录 一 设计背景 二 系统总体方案设计 2 1 系统框图及总体工作原理描述 三 系统硬件介绍 3 1处理器资源介绍 3 1 1核心板资源 3 1 2 核心板特性 3 4 Camera接口 3 5音频接口 四 系统软件设计 4 1 软件整体
  • poi版本升级 POI操作Excel文件,通过文件流判断Excel的版本.原来版本不能用

    原始版本代码入下 if POIFSFileSystem hasPOIFSHeader inputstream book new HSSFWorkbook inputstream isXSSFWorkbook false else if PO
  • 14-剪绳子

    题目 给你一根长度为n的绳子 请把绳子剪成m段 m n都是整数 且都大于1 每段绳子的长度记为k 0 k 1 k m 请问k 0 k 1 k 2 k m 可能的最大成绩是多少 def max product cut n if n lt 2