動態規劃 之 鋼條切割

在這里插入圖片描述
在這里插入圖片描述

自頂向下遞歸實現(Recursive top-down implementation)
程序CUT-ROD對等式(14.2)進行了實現,偽代碼如下:

CUT-ROD(p, n)if n == 0return 0q = -∞for i = 1 to nq = max{q, p[i] + CUT-ROD(p, n - i)}return q

在這里插入圖片描述

上面解決中重復對一個子結構問題重復求解了,我們可以把這個過程記錄下來

使用動態規劃求解最優鋼條切割(Using dynamic programming for optimal rod cutting)

在這里插入圖片描述
在這里插入圖片描述在這里插入圖片描述
在這里插入圖片描述


MEMOIZED-CUT-ROD(p, n)let r[0 : n] be a new array    // will remember solution values in rfor i = 0 to nr[i] = -∞return MEMOIZED-CUT-ROD-AUX(p, n, r)MEMOIZED-CUT-ROD-AUX(p, n, r)if r[n] ≥ 0    // already have a solution for length n ?return r[n]if n == 0q = 0else q = -∞for i = 1 to n    // i is the position of the first cutq = max{q, p[i] + MEMOIZED-CUT-ROD-AUX(p, n - i, r)}r[n] = q    // remember the solution value for length nreturn q

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

代碼

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>class Solution {
public:Solution(int x):len(x){}int fun() {for (int i = 0; i <= len; i++) {memory[i] = 0;  // 初始化}for (int i = 1; i <= len; i++){int q = min;for (int k = 1; k <= i; k++){q =std::max( q , price[k] + memory[i - k]);   // 每次切割一次,這是核心record[i] = k;}memory[i] = q;}return memory[len];}private:int price[11] = {0,1,5,8,9,10,17,17,20,24,30};  // 假定數據較小,對應價格int len;int memory[11];   // 記錄 int record[11];   // 在哪里切割int min = -1;
};int main()
{Solution a(4);std::cout <<a.fun() << std::endl;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/167846.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/167846.shtml
英文地址,請注明出處:http://en.pswp.cn/news/167846.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Qt無邊框窗口設置陰影

//設置窗體透明this->setAttribute(Qt::WA_TranslucentBackground, true);//設置無邊框this->setWindowFlags(Qt::Window | Qt::FramelessWindowHint | Qt::WindowMinMaxButtonsHint);QVBoxLayout* pMainLay new QVBoxLayout(this);CLoginRealWidget* pRealWidget new …

VR全景展示,“超前點播”打開娛樂行業線上營銷門戶

如今&#xff0c;人們的生活水平正在逐步提高&#xff0c;這種提高不僅僅是體現在衣食住行上&#xff0c;更多方面是體現在大眾的娛樂活動上。我們可以看到&#xff0c;相比于過去娛樂種類的匱乏&#xff0c;現如今&#xff0c;各種娛樂活動可謂是百家爭鳴&#xff0c;例如溫泉…

目標檢測YOLO實戰應用案例100講-基于多光譜圖像融合的光伏組件故障 檢測

目錄 前言 國內外研究現狀 多光譜圖像配準研究現狀 光伏區域識別研究現狀

java學習part10 this

90-面向對象(進階)-關鍵字this調用屬性、方法、構造器_嗶哩嗶哩_bilibili 1.java的this java的this性質類似cpp的this&#xff0c; 但它是一種引用&#xff0c;所以用 this. xxx來調用。 this代表當前的類的實例&#xff0c;所以必須和某個對象結合起來使用&#xff0c;不能…

webrtc的RTCPeerConnection使用

背景&#xff1a; 平時我們很少會需要使用到點對點單獨的通訊&#xff0c;即p2p,一般都是點對服務端通訊&#xff0c;但p2p也有自己的好處&#xff0c;即通訊不經過服務端&#xff0c;從服務端角度這個省了帶寬和壓力&#xff0c;從客戶端角度&#xff0c;通訊是安全&#xff…

Javaweb之前端工程化的詳細解析

3 前端工程化 3.1 前端工程化介紹 我們目前的前端開發中&#xff0c;當我們需要使用一些資源時&#xff0c;例如&#xff1a;vue.js&#xff0c;和axios.js文件&#xff0c;都是直接再工程中導入的&#xff0c;如下圖所示&#xff1a; 但是上述開發模式存在如下問題&#xff…

git的使用:本地git下載、sshkey的添加、github倉庫創建及文件上傳

一、github創建賬號 即github注冊賬號&#xff0c;登錄github官網&#xff0c;根據提示注冊即可 github官網 二、git客戶端下載安裝 已有很多git下載安裝的博文了&#xff0c;在此就不贅述 三、sshkey的生成與添加 1、sshkey的生成以及查看 // sshkey的生成命令&#xff…

OSS+CDN的資費和安全

文章目錄 花費OSSCDNOSS CDN 安全OSS防盜鏈跨域設置CORS數據加密 CDN防盜鏈URL鑒權Cookie鑒權遠程鑒權IP黑白名單UA黑白名單 回源服務自定義私有參數IP黑白名單數據加密 花費 OSS 存儲費用 &#xff1a;0.12元/GB/月下行流量費用 &#xff1a;0.5元/GB請求費用 &#xff1a;…

java全局異常處理(springboot)

介紹&#xff1a; 在日常項目開發中&#xff0c;異常是常見的&#xff0c;但是如何更高效的處理好異常信息&#xff0c;讓我們能快速定位到BUG&#xff0c;是很重要的&#xff0c;不僅能夠提高我們的開發效率&#xff0c;還能讓你代碼看上去更舒服&#xff0c;SpringBoot的項目…

C語言你愛我么?(ZZULIOJ 1205:你愛我么?)

題目描述 LCY買個n束花準備送給她暗戀的女生&#xff0c;但是他不知道這個女生是否喜歡他。這時候一個算命先生告訴他讓他查花瓣數&#xff0c;第一個花瓣表示"愛"&#xff0c;第二個花瓣表示"不愛"&#xff0c;第三個花瓣表示"愛"..... 為了使最…

某60區塊鏈安全之未初始化的存儲指針實戰二學習記錄

系列文章目錄 文章目錄 系列文章目錄未初始化的存儲指針實戰二實驗目的實驗環境實驗工具實驗原理實驗內容實驗過程EXP利用 未初始化的存儲指針實戰二 實驗目的 學會使用python3的web3模塊 學會分析以太坊智能合約未初始化的存儲指針漏洞 找到合約漏洞進行分析并形成利用 實驗…

機器學習之自監督學習(四)MoCo系列翻譯與總結(二)

MoCo中相關工作的對比分析 去噪自動編碼器&#xff08;Denoising Autoencoder&#xff09;是一種用于學習數據表示的神經網絡模型。它的主要目標是通過去除輸入數據中的噪聲&#xff0c;學習到輸入數據的有用表示&#xff0c;從而提高模型對干凈數據的魯棒性。下面是對去噪自動…

Flink 常用物理分區算子(Physical Partitioning)

Flink 物理分區算子(Physical Partitioning) 在Flink中&#xff0c;常見的物理分區策略有&#xff1a;隨機分配(Random)、輪詢分配(Round-Robin)、重縮放(Rescale)和廣播(Broadcast)。 接下來&#xff0c;我們通過源碼和Demo分別了解每種物理分區算子的作用和區別。 (1) 隨機…

win10安裝pytorch(py39)

cuda≤11.6&#xff0c;觀察控制面板 觀察torch對應cuda版本 https://download.pytorch.org/whl/torch/ 安裝cuda11.6.0 CUDA Toolkit Archive | NVIDIA Developer cmd輸入nvcc -V 編輯國內鏡像源 .condarc anaconda prompt輸入 查看環境 conda env list 安裝py3.9…

uniapp視頻倍速播放插件,uniapp視頻試看插件——sunny-video使用文檔

sunny-video視頻倍速播放器 組件名&#xff1a;sunny-video 效果圖 img1img2img3img4 平臺差異說明 目前已應用到APP&#xff08;安卓、iOS&#xff09;、微信&#xff08;小程序、H5&#xff09;其它平臺未測試 安裝方式 本組件符合easycom規范&#xff0c;HBuilderX 2.5…

emoji

圖標的網址&#xff1a; webfx emojipedia 1.可以直接復制粘貼 2.按照其格式文本表示&#xff08;Shortcodes&#xff09; &#x1f680; &#x1f604; &#x1f92b; ?? &#x1f480; 還有關于通過鏈接引用shield.io中的圖標&#xff0c;沒有深究&#xff0c;不…

第六十三周周報

學習目標&#xff1a; 項目 實驗和論文 學習時間&#xff1a; 2023.11.18-2023.11.24 學習產出&#xff1a; 論文 對論文進行了潤色和修改 實驗 1、上周DiffusionRelative的結果無法再次復現&#xff0c;新跑的FID與以前實驗跑的結果相差不大&#xff0c;上周的結果應…

點大商城V2.5.3分包小程序端+小程序上傳提示限制分包制作教程

這幾天很多播播資源會員反饋點大商城V2.5.3小程序端上傳時提示大小超限&#xff0c;官方默認單個包都不能超過2M&#xff0c;總分包不能超20M。如下圖提示超了93KB&#xff0c;如果出現超的不多情況下可采用手動刪除一些images目錄下不使用的圖片&#xff0c;只要刪除超過100KB…

鴻蒙4.0開發筆記之DevEco Studio如何使用低代碼開發模板進行開發的詳細流程(六)

鴻蒙低代碼開發 一、什么是低代碼二、如何進行鴻蒙低代碼開發1、 創建低代碼開發工程&#xff08;方式壹&#xff09;2、已有工程則創建Visual文件&#xff08;方拾貳&#xff09; 三、低代碼開發界面介紹四、低代碼實現頁面跳轉五、低代碼開發建議 一、什么是低代碼 所謂低代碼…

Qt+xml解析

文章目錄 一、xml文件介紹1.1 XML 文件結構和基本概念1.2 XML 文件示例二、Qt讀取xml文件2.1 Qt讀取xml 步驟2.2 基本操作和函數 QXmlStreamReader2.3 錯誤處理errorString和hasError2.4 Qt讀取xml實例三、實際項目一、xml文件介紹 1.1 XML 文件結構和基本概念 XML(可擴展標…