機器分配(線性DP)

2022-05-12 23:55:32 字數 840 閱讀 2370

題目描述

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

輸入格式

第一行有兩個數,第乙個數是分公司數n,第二個數是裝置台數m。

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

輸出格式

第1行為最大盈利值

第2到第n為第i分公司分x臺

樣例樣例輸入

3 330 40 50

20 30 50

20 25 30

樣例輸出

701 1

2 13 1

這道題我認為dp還算好理解,可獨流的是輸出各個公司的分配情況,還要用遞迴(絕望……)

以題目變數為例,每次更新(前 i 個公司分配的 k 臺機器) +( 第i臺機器分配 j-k 臺機器)的最大利潤

一看**就懂啦:

#include#include

using

namespace

std;

int val[20][20],f[20][20

];int mt=-1

;

int show(int i,int

j) }

}int

main()

f[i][j]=mt;}}

printf(

"%d\n

",f[n][m]);

show(n,m);

return0;

}

線性DP 機器分配

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

線性DP之機器分配

自己瞅 懶得打了 前面是很簡單的線性dp,後面是模擬遞迴輸出方案,模擬遞迴可以設ny為機器數機器數,nx表示第nx個公司,tot為總盈利,那麼則有 a nx i dp nx 1 ny i tot 即可進行轉移,進而記錄路徑 我還記得有道題叫cd,可以看一下 includeusing namespac...

DP 機器分配

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