2022-08-16:绳子总长度为M,
100 -> M,
(6, 100) (7,23) (10,34) -> arr,
每一个长度的绳子对应一个价格,比如(6, 10)表示剪成长度为6的绳子,对应价格10,
可以重复切出某个长度的绳子。
定义递归如下:
所有可以切出来的长度 对应 价值都在数组ropes里,
ropes[i] = {6, 10} 代表i方案为:切出长度为6的绳子,可以卖10元,
index…所有的方案,随便选择。index之前的方案,不能选择,
返回最大的价值。
自己去改动态规划,
arr[i][0] -> i号方案能切多少长度,
arr[i][1] -> 切出来这个长度,就能获得的价值,
arr[index…]自由选择,绳子还剩restLen长度。
返回,最大价值。

答案2022-08-16:

递归。

代码用rust编写。代码如下:

fn main() {
let mut arr: Vec<Vec<i32>> = vec![vec![6, 10], vec![7, 12]];
let ans1 = max_value(&mut arr, 0, 19);
println!("ans1 = {}", ans1);
} fn max_value(arr: &mut Vec<Vec<i32>>, index: i32, rest_len: i32) -> i32 {
if rest_len <= 0 || index == arr.len() as i32 {
return 0;
}
// 绳子还有剩余、且还有方案
// index号方案
// 不选
let p1 = max_value(arr, index + 1, rest_len);
// 选
let mut p2 = 0;
if arr[index as usize][0] <= rest_len {
// 剩余绳子够长,才能选当前方案
p2 = arr[index as usize][1] + max_value(arr, index, rest_len - arr[index as usize][0]);
}
return get_max(p1, p2);
} fn get_max<T: Clone + Copy + std::cmp::PartialOrd>(a: T, b: T) -> T {
if a > b {
a
} else {
b
}
}

执行结果如下:


左神java代码

2022-08-16:绳子总长度为M, 100 -> M, (6, 100) (7,23) (10,34) -> arr, 每一个长度的绳子对应一个价格,比如(6, 10)表示剪成长度为6的绳子,对应的更多相关文章

  1. Zookepper(2015.08.16笔记)

    2015.08.16zookepper   Zookeeper 是 Google 的 Chubby一个开源的实现,是 Hadoop 的分布式协调服务(如同小区里面的供水.电的系统) 它包含一个简单的原 ...

  2. http://www.cnblogs.com/alipayhutu/archive/2012/08/16/2643098.html

    http://www.cnblogs.com/alipayhutu/archive/2012/08/16/2643098.html

  3. 2021.08.16 P1260 工程规划(差分约束)

    2021.08.16 P1260 工程规划(差分约束) 重点: 1.跑最短路是为了满足更多约束条件. P1260 工程规划 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 造 ...

  4. 2021.08.16 P1078 文化之旅(最短路)

    2021.08.16 P1078 文化之旅(最短路) 题意: n个地,k个信仰,每个地都有自己的信仰,信仰之间会相互排斥,同信仰之间也会相互排斥,有m条路,问从s到t的最短距离是多少? 有一位使者要游 ...

  5. 2021.08.16 P1300 城市街道交通费系统(dfs)

    2021.08.16 P1300 城市街道交通费系统(dfs) P1300 城市街道交通费系统 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 城市街道交费系统最近创立了.一 ...

  6. 2021.08.16 P1363 幻象迷宫(dfs,我感受到了出题人浓浓的恶意)

    2021.08.16 P1363 幻象迷宫(dfs,我感受到了出题人浓浓的恶意) P1363 幻象迷宫 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 幻象迷宫可以认为是无限 ...

  7. VB6查看桌面分辨率和工作区大小 2022.08.22 name.vt

    VB6查看桌面分辨率和工作区大小 2022.08.22 name.vt Form1 内代码如下: ' 2022年8月22日 15时15分 ' 作者:name.vt Private Sub cmdCle ...

  8. 不用循环,、es6创建一个长度为100的数组

    问题描述:在不使用循环的条件下,如何创建一个长度为100的数组,并且数组的每一个元素是该元素的下标? 结果为: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1 ...

  9. 前端面试题:不使用loop循环,创建一个长度为100的数组,并且每个元素的值等于它的下标,,怎么实现好?

    昨天,看这道题,脑子锈住了,就是没有思路,没看明白是什么意思?⊙﹏⊙|∣今天早上起床,想到需要思考一下这个问题. 当然,我没想明白为什么要这样做?(创建一个长度为100的数组,并且每个元素的值等于它的 ...

  10. 【16】进大厂必须掌握的面试题-100个python面试

    我们整理了Python面试的主要问题清单,分为7个部分: 基本面试问题 OOPS面试问题 基本的Python程序 Python库面试问题 数据分析面试题 选择题(MCQ) 基本的Python面试问题 ...

随机推荐

  1. js 小数和百分数的转换

    百分数转化为小数 function toPoint(percent){ var str=percent.replace("%",""); str= str/10 ...

  2. OSPF之路由撤销1

  3. Codeforces Round 857 (Div. 2) A-D

    Codeforces Round 857 (Div. 2) A. Likes 求每回合最大的数列:先全使用正数,每个正数对ans++,再全使用负数,每个负数对ans-- 求每回合最小的数列:方法1(模 ...

  4. Linux & 标准C语言学习 <DAY12_2>

    一.堆内存     1.什么是堆内存         是进程的一个内存段(text.data.bss.stack.heap)         由程序员手动管理         特点是足够大,缺点是使用 ...

  5. PHP微信三方平台-代公众号发起微信支付(jsAPI)

    一.前期准备工作 1.微信公众号需要开通微信支付认证将获取的秘钥给三方平台 2.添加支付回调域名地址:填写三方平台域名地址即可(最多5个) 二.代码demo 1.完成支付类 <?php /** ...

  6. 汽车制造工艺 2.5D 可视化组态监控 | 图扑软件

    前言 随着世界经济的不断发展,汽车作为一个如今随处可见的物体,从大体上概括是由四大部分组成:发动机.底盘.车身.电气系统.看似简单的几个名词组件,其内部却是由无数的细小零件构成,一辆汽车更是由上万个微 ...

  7. rocketmq-spring : 实战与源码解析一网打尽

    RocketMQ 是大家耳熟能详的消息队列,开源项目 rocketmq-spring 可以帮助开发者在 Spring Boot 项目中快速整合 RocketMQ. 这篇文章会介绍 Spring Boo ...

  8. 常用脚本学习手册——Bat脚本

    常用脚本学习手册--Bat脚本 我们在日常工作中常常会遇到一些需要重复进行的工作,又或者我们的项目在转交客户时需要去简化配置过程 这时我们就需要使用到一些自动化部署操作,我们常常会采用脚本来完成这部分 ...

  9. ChatGPT推荐最常用的自动化测试、性能、安全测试工具!

    ChatGPT是一种当前被广泛关注的人工智能技术,它具备生成自然语言的能力,能够完成一些简单的文本生成.对话交互等任务.ChatGPT 算法的出现,打破了以前自然语言处理的瓶颈,使得机器具备了更加贴合 ...

  10. 利用 kubeadm 创建 kubernetes (k8s) 的高可用集群

    引言: kubeadm提供了两种不同的高可用方案. 堆叠方案:etcd服务和控制平面被部署在同样的节点中,对基础设施的要求较低,对故障的应对能力也较低 堆叠方案 最小三个Master(也称工作平面), ...