实验名称: 动态规划
一、实验预习
1、实验目的
1. 理解并掌握动态规划方法的设计思想;
2. 提高应用动态规划方法解决问题和设计算法的能力;
3. 通过编程实现租用游艇问题和石子合并问题,进一步理解动态规划方法解题的四个基本步骤。
2、实验内容
1. 租用游艇问题:长江游艇俱乐部在长江上设置了 n 个游艇出租站 1,2,…,n。游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站 i 到游艇出租站 j 之间的租金为 r(i, j), 1≤i<j≤n。试设计一个算法,计算出从游艇出租站 1 到游艇出租站 n 所需的最少租金。
两个测试用例:输入数据分别由文件名为 input 1.txt和input 2.txt的文本文件提供,文件的第一行中有 1 个正整数 n(n<=200),表示有 n个游艇出租站。接下来的 n-1 行是 r(i, j), 1≤i<j≤n。请分别计算并给出结果。
2. 石子合并问题:在一个操场上一排地摆放着 n 堆石子。要求将这些石子有次序地合并成一堆。规定每次只能选相邻的两堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。试设计一个算法,计算出将 n 堆石子合并成一堆的最小得分。
两个测试用例:输入数据分别由文件名为 input 1.txt和input 2.txt的文本文件提供,文件的第一行有 1 个正整数 n,表示石子的堆数。第二行有 n 个数,分别表示每堆石子的个数。
3、硬、软件环境
计算机型号:Windows 11版81FW
编程语言:C++
开发工具:Dev-C++
4、实验预备工作

本文详细介绍了如何运用动态规划解决租用游艇问题和石子合并问题,通过实验预习、算法描述和实例计算,展示了动态规划设计思想、步骤以及在C++中的实现。通过这两个实际问题,深入理解动态规划在优化问题中的应用。
最低0.47元/天 解锁文章
1791

被折叠的 条评论
为什么被折叠?



