動態規劃 機器分配

2021-06-21 11:11:06 字數 1014 閱讀 2724

問題描述:

機器分配(hnoi』95)

一、問題描述

總公司擁有高效生產裝置 m 臺,準備分給下屬的 n 個公司。各分公司若獲得這些裝置,

可以為國家提供一定的盈利。問:如何分配這 m 臺裝置才能使國家得到的盈利最大?求出

最大盈利值。其中 m《=15,n〈=10。分配原則:每個公司有權獲得任意數目的裝置,但總

台數不得超過總裝置數 m。儲存資料的檔名從鍵盤輸入。

資料檔案格式為:第一行儲存兩個數,第乙個數是裝置台數 m,第二個數是分公司數 n。

接下來是乙個 m*n 的矩陣,表明了第 i 個公司分配 j 臺機器的盈利。

個人思想記錄:(錯誤)

拿到題我還是老思維,就是動態規劃是由遞迴演變而來的,就是記錄遞迴的中間過程,其實方法還是遞迴搜尋。

我就想 m臺機器嘛,可定每次遞迴選擇乙個公司把這台機器分給這個公司,這樣就有m次遞迴,也就是有m個階段。

讓公司個數為狀態,在我的想法裡面就是乙個是階段另乙個肯定是狀態了,但是我的響了一下中間過程沒法推,

還有乙個問題就是我們中間記錄什麼的問題。自己總是在這些問題中糾纏。這些想法行不通。所以我就去看了答案。

解題思路:

我們可以把狀態設定為個數這樣我們就能考慮到因為個數不同而價值不同計算了 , 我們把公司設定為階段。我們設定陣列為d[i][j]表示前i個公司用j個機器。我們用 d[i][j]來記錄到i階段的j臺機器時價值的最大值。

如何的到d[i][j]呢 , 我們可以從d[i-1]行中找,因為機器數是j個如果在第j個公司放x(x

這樣子地推應該很容易就能得到結果吧。。。。

如果是一層一層的遞迴

先選1公司的 1 2 3 4 5 6.、。。。n種

再從1中選一種情況 在開始1 2 3 4 5 。。。。n的遞迴

知道m個公司全部遞迴完成 。

這裡面存在個數的限制 比如最多有 6臺機器 你第一次選6 第二次再選什麼都會超過的,還有正好6臺機器你少了也不行。要求加上個數的限制 相應的在上面的表示就是j-k和k 正好組成了j臺機器。

動態規劃 機器分配

時間限制 1 sec 記憶體限制 64 mb 提交 7 解決 4 提交 狀態 討論版 命題人 題目描述 魔法學院購進高效生產裝置m台以轉換魔法石能量,準備分給學院的n個小組。各小組若獲得這些裝置,可以為學院提供一定的魔法石能量。問 如何分配這m臺裝置才能使魔法石能量最大?求出最大魔法石能量值。其中m...

動態規劃基礎題 機器分配

題目描述 總公司擁有高效裝置m臺,準備分給下屬的n個分公司。各分公司若獲得這些裝置,可以為國家提供一定的盈利。問 如何分配這m臺裝置才能使國家得到的盈利最大?求出最大盈利值。其中m 15,n 10。分配原則 每個公司有權獲得任意數目的裝置,但總台數不超過裝置數m。輸入輸出格式 輸入格式 第一行有兩個...

43 動態規劃 機器分配問題

import random as rd from pyscipopt import model,quicksum def sub ll print l,digit s for i in range len l s s str l i temp l i digit temp 1 while temp ...