#29253: 解法一


SUNGOD (黑龍炎使.煞氣ㄟSUNGOD)

學校 : 國立交通大學
編號 : 95834
來源 : [140.113.213.76]
最後登入時間 :
2023-09-25 22:02:42
d682. TOI2010 第三題:職棒簽約問題 -- 2010TOI研習營初選 | From: [123.240.145.218] | 發表日期 : 2022-02-09 14:17

DP:

令DP[i][j]表示用i塊錢且看完j個位子的情況下所能得到的最大戰力,則題目就會變成求DP[0-m][N]的最大值

初始化:DP[0][0] = 0 // 看完0個位子,且用了0塊錢的情況下,你有0點戰力

轉移式:當DP[i][j]可到達,且i+v(那位選手的金額,戰力為w)<=M ,則 DP[i+v][j+1] = max(DP[i+v][j],max(DP[i+v][j+1],DP[i][j]+w));

複雜度:時間O(N*P*M)//5ms,空間O(M*N)

 

狀態壓縮:不難看出轉移式當中的DP[i][j]只和前項有關,所以可以把DP[M][N]簡化為DP[M][2],用覆蓋的方式往下推,這樣空間會從O(M*N)變成O(M)。

 

 
ZeroJudge Forum