算法导论:钢条切割(java动态规划实现)

动态规划-钢条切割(java) 数据结构与算法系列源代码:https://github.com/ThinerZQ/AllAlgorithmInJava 本文源代码:https://github.com/ThinerZQ/AllAlgorithmInJava/blob/master/src/main/java/com/zq/algorithm/dynamicprogrammin/SteelBar.java如果代码链接失效了,麻烦评 阅读详情

动态规划算法:递归算法基础上每个子问题只求解一次并保存下来。

import java.util.*;
public class Main{
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int n,a;
		n = in.nextInt();
		a = rod(n);
		System.out.print(a);
	}
	public static int rod(int n) {
		int[] price = {1,5,8,9,10,17,17,20,24,30};
		int[] r = new int[n+1];
		int q;
		r[0] = 0;
		for(int j=1;j<=n;j++) {
			q = -9999999;
			for(int i=1;i<=j;i++) {
				q = Math.max(q, price[i-1]+r[j-i]);
			}
			r[j] = q;
		}
		return r[n];
	}
}


动态规划-钢条切割 动态规划 简介 目的:求解最优解问题; 思想:组合子问题的解来求解原问题; 一. 可以解决哪些问题: 1. 问题的目标是求解一个问题的最优解; 2. 整体问题的最优解依赖于各个子问题的最优解; 3. 大问题分解成若干小问题,且这些小问题还可能继续分解为若干更小的问题; 4. 从上向下分析问题,从下向上解决问题。 二. 设计动态规划的方法: 刻画一个最优解结构特征: 即要求满足题目要求的解的特征;... 阅读详情

相关推荐

钢条切割问题(动态规划)

钢条切割问题(动态规划)

qq_52042398的博客 1087

钢条切割问题(Java)——Top-down DP演算法

Rod Cutting题目: 注意: 本题采用txt文件读入,屏幕输出; 如果需要屏幕读入屏幕输出,可以留言或者自己改代码~ Top-down DP演算法: 从钢条的左边切割下一段长度为i的短钢条,然后右边为长度即为n-i的短钢条,进一步对右边继续递归求解,直到右边的长度为0,则返回零。 ——所需时间T=O( n^2) import java.io.BufferedReader; imp...

Wangzx的博客 1040

Python 算法入门教程:动态规划之钢条切割问题

钢条切割问题,主要讲解了什么是钢条切割问题,如何利用动态规划算法解决钢条切割问题,给出了钢条切割问题的实现伪代码并进行分析,并用 Java 语言进行了伪代码实现,帮助大家通过钢条切割问题更好的理解动态规划算法思想的应用。我们来考虑现实生活中的一个实际应用场景,某个钢材公司购买长钢条,将其切割为短钢条出售,其中切割过程本身不考虑成本,公司管理层想知道最赚钱的钢材切割方案。

win19970108018的博客 757

java,动态规划,算法导论之钢条切割(O(n)时间渐进性)

动态规划总结: 动态规划用于处理具有最优子结构,子问题重叠且互不相关的情况。由于子问题有所重叠,故此,为节省运行时间,每个子问题只求一次,通过“自顶向下带备忘录法”或“自底向上迭代法”来记录和应用已求得结果的子问题。能把递归结构次数从指数次降低到多项数次,使问题能快速求解。 动态规划和分治法把大问题化成小问题思想有点类似,却又有不同,分治法的子问题没有重叠。 思想步骤:1、分析最优子结构

qq_35328850的博客 730

动态规划之钢条切割

《算法导论》老师布置的作业,解决钢条切割问题: 附上代码: package com.crazymonkey; import java.awt.Color; import java.util.ArrayList; import javax.swing.JOptionPane; /** * 算法导论第15章之钢条切割 * @author CrazyMonkey * @since 2013

离名 1065

【算法-动态规划】钢条切割问题

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨。

优快云站内信: https://i.youkuaiyun.com/#/msg/chat/qyj19920704 2万+

动态规划——钢条切割java

【问题】:给定一段长度为n英寸的钢条和一个价格表pi(i = 1,2,3…n)求切割方案使得销售受益rn最大。 例如 n = 4 切割方案以及对应的收益为: 【用自顶向下的递归】 //CUT-ROD(p,n) if n == 0 return 0 q = -无穷 for i = 1 to n q = max(q,p[i]+CUT-ROD(p,n-i)) retur...

weixin_39795049的博客 1066

钢条切割-【算法导论-动态规划】

对以上的价格表样例,进行模拟切割: r1 = 1,切割方案1 = 1(无切割) r2 = 5,切割方案2 = 2(无切割) r3 = 8, 切割方案3 = 3(无切割) r4 = 10, 切割方案4 = 2 + 2 r5 = 13, 切割方案5 = 2 + 3 r6 = 17, 切割方案6 = 6(无切割) r7 = 18, 切割方案7 = 1 + 6或7 = 2 + 2 + 3 r8 = 22, 切割方案8 = 2 + 6 r9 = 25, 切割方案9 = 3 + 6 r10 = 30,切割方案10 = 10(无切割) 可能现在大家对这种切割比较不耐烦,或者是有的数并不是那么好,怎么办? 这时有个很好的思想,就是动态规划,之前模拟切割尽管结果出来的很简单,但是过程却依然很复杂; 比如r7,它有很多切割方案,1-6,2-5,3-4,2-2-3,1-1-5等等,这些过程如何自己来模拟的话实在是太费时间,但是我们想在切割7的时候前面都已经完成了,我们可以在前面的基础上进行切割,这时只要考虑1-6,2-5,3-4即可,比如现在的1-6就包括了之前的1-1-5,1-2-4等的切割方案;

《算法导论》第15章动态规划钢条切割问题Java实现

算法导论中讲解动态规划的一个很经典的例子,详细分析了朴素的递归、自顶向下动态规划的递归和自底向上的非递归动态规划,这三种思路之间的区别,并重构解。 联系第22章: 自顶向下动态规划的递归:就是子问题图的深度优先搜索 自底向上的非递归动态规划:就是子问题图的逆拓扑排序 代码实现: import java.util.ArrayList; import java.util.Arrays; i...

locallucky的博客 655

手把手教你用Simulink给C2000配置SCI串口发送数据(附模型与避坑点)

本文详细介绍了如何使用Simulink为C2000系列微控制器配置SCI串口发送数据,包括硬件资源分配、模型搭建、参数设置及调试技巧。通过代码生成和串口通信实践,帮助开发者高效实现嵌入式系统开发,避免常见通信问题。

weixin_30831529的博客 296

基于人脸识别的课堂考勤系统 tkinter+openpyxl+face_recognition

基于face_recognition库实现人脸考勤系统功能。利用Python的tkinter模块来设计考勤系统的图形化界面,此外结合openpyxl模块,实现将学生的信息和考勤打卡数据保存到表格中,方便查看和调用。该系统具备“刷脸打卡”、“新学生注册”等功能。............

lyx4949的博客 6966

钢条切割(java)

问题描述: Serling公司购买长钢条,将其切割为短钢条出售。切割工序本身没有成本支出。公司管理层希望知道最佳的切割方案。假定我们知道Serling公司出售一段长为i英寸的钢条的价格为pi(i=1,2,…,单位为美元)。钢条的长度均为整英寸。 | 长度i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | | - | - | - | - | - | - | - ...

lianggege88的博客 680

神州数码防火墙(DCN)NAT SSL-VPN配置

SSL-VPN是基于应用层的VPN,采用SSL协议来实现远程接入的一种新型VPN技术,比L2TP更加灵活的VPN方案。是天然的安全远程接入方案。用户可以通过浏览器的HTTPSs登录VPN的网址。SSL-VPN的认证方式包括LDAP,radius,CA,USB Key等方式。 SSL VPN的主要应用场景是保证远程用户能够在企业外部安全\高效的访问企业内部的网络资源

qq_50966485的博客 4558

算法导论-动态规划(钢条切割问题)

写下文章来记录下自己学习算法导论的笔记 文章目录写下文章来记录下自己学习算法导论的笔记动态规划的目的设计动态规划算法钢条切割问题问题描述刻画问题结构(建立方程)递归方程建立带备忘录的自顶向下法自底向下的方法如何保留切割方案源代码 动态规划的目的 求出最优子结构 设计动态规划算法 1.刻画一个最优解的结构特征 2.递归定义最优解的值 3.计算最优解的值 4.利用计算出的信息构造一个最优解 钢条切割问题 问题描述 ​ Serling公司购买长钢条,将其切割为短钢条出售。切割工序本身没有成本支出。公司管理层希.

fff1412的博客 2703

ROS教程(四):RVIZ使用教程(详细图文)

前言 根据前面的教程已经学会了创建功能包,那么本篇文章主要内容则是通过节点来发布数据至RVIZ

Leslie的博客 17万+

WSL2迁移后用户名不见了?一招教你快速恢复Ubuntu22.04默认用户

本文针对WSL2迁移后Ubuntu 22.04默认用户名丢失的常见问题,提供了详细的诊断与修复方案。通过分析迁移底层逻辑,指导用户使用`ubuntu2204.exe config --default-user`命令或配置`/etc/wsl.conf`文件快速恢复用户身份,并涵盖权限修复、冲突解决及自动化迁移脚本等进阶内容,确保子系统迁移后环境完整可用。

web39explorer的博客 558

算法导论中的钢条切割问题

问题描述:   公司购买长钢条,将其切割为短钢条进行出售,切割工序本身没有成本支出,公式管理层希望知道最佳的切割方案。假定我们知道公司出售一段长为i英寸的钢条价格为pi;钢条的长度均为整英寸。给定一段长度为n英寸的钢条和一个价格表pi,求切割钢条方案,使得销售收益最大。如果长度为n英寸的钢条的价格足够大,最优解可能就是完全不用切割。 长度:1, 2, 3, 4, 5, 6, 7, 8, 9,10 ...

覃会程的博客 1375

【03】海康MVS V4.3.0 ——安装教程、查看示例、库、头文件、开发指南

海康威视MVS机器视觉软件安装与使用指南:首先从官网下载MVS 4.3.0安装包,默认设置完成安装。安装后可在Development目录查看示例代码、开发文档及头文件,支持C++/C#/Python等多语言开发。软件内置虚拟相机功能,通过工具菜单添加虚拟设备后即可模拟真实相机操作,支持中英文界面切换、参数调节(曝光/增益等)及图像采集功能。虚拟相机虽仅能显示预设图像,但完整保留了参数调节功能,适合开发者进行功能测试。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 3313

算法:动态规划(1.钢条切割)

Dynamic programming 动态规划,与分治法相似,都是通过组合字问题的解来求解原问题,但动态规划是应用于子问题重叠的场景,每个子问题都只求一遍,将解存入表格中,避免不必要的重复工作。 问题:购买长钢条,将其切割为短钢条出售,切割 ...

齐天的博客 1838

基于YOLO11深度学习的糖尿病视网膜病变智能诊断系统【Python源码+Pyqt5界面+数据集+训练代码】

本文详细介绍如何利用YOLO11深度学习技术构建糖尿病视网膜病变智能诊断系统。项目提供完整的Python源码、PyQt5图形界面、标注数据集及训练代码,实现从图片、视频到摄像头的多模态病变检测,旨在辅助医疗筛查,提升诊断效率。

weixin_29089057的博客 277

innovus:InstPad、CellPad 、module padding、clock cell halo

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?site_num指的是padding的大小以site宽度为单位。

m0_61544122的博客 2028

钢条切割(动态规划问题)

动态规划 动态规划与分治方法相似都是通过组合子问题的解来求解原问题 动态规划通常用来求解最优化问题,这样的问题可以有很多个可行解,每一个解都有一个值,我们希望寻找具有最右值(最大值 或者 最小值)的解, 最优值有一个,但是最优解可能有多个; 通常按如下四个步骤设计一个动态规划算法 1、刻划一个最优解的结构特征 2、递归地定义最优解的值 3、计算最优解的值,通常采用自底向上方法 4、利用计算出的信息...

weixin_44016068的博客 1790

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

动态规划(二)--钢条切割

问题描述:一家公司购买长钢条,将其切割成短钢条出售,切割本身没有成本,长度为i的短钢条的价格为Pi。那给定一段长度为n的钢条和一个价格表Pi,求钢条的切割方案使得收益Rn最大。如一个Pi如下: 长度i 1 2 3 4 5 6 7 8 9 10 价格Pi 1 5 8 9 10 17 17 20 24 30 在距离钢

阿Biang的BLOG 2262

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

动态规划,java实现算法导论15章钢条切割

来自浙江理工大学在读研究生Yuner: github地址 个人博客地址 此问题dp式 :rn = max(pi + r(n-1)) 不使用dp,用普通的递归方式来求解 //使用普通的方法来计算钢条切割的最优切割方案 public class Steelbarcutting1 { private int[] price; Steelbarcutting1() { price = new int[]{1,5,8,9,10,17,17,20,24,30}; }

nishuiaee的博客 354

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

钢条切割--动态规划--算法导论

在网上看到很多钢条切割的代码,很多都是C++,用到结构体,内联函数,const变量,复杂......直接写了一段java简单的代码 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.i

CodeHarvest的博客 718
上一篇: 算法导论:钢条切割(java递归实现)
下一篇: 拓展pycharm里的可用包
fun_always
博客等级 码龄9年 39粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值