幫助同學DP

2021-10-06 04:31:04 字數 1280 閱讀 5781

簡單dp題

problem description

yukina非常樂於助人,他每天都會抽出時間幫助一些同學解決**問題,因為yukina很古板,講究"先來後到"的原則,所以yukina不會先幫助後來找他的同學。

如今有n個同學需要他的幫助,儘管他非常想一天之類幫助全部人,但畢竟精力有限,於是他決定分m天來幫助他們

依據事情的重要性,yukina幫助不同同學會有不同的能力值。而yukina獲得的總的能力值為每天獲得的能力值的乘積

現在給出n和m,以及幫助完各同學時獲得的能力值,求yukina能獲得的最大能力值。

input

輸入第一行兩個整數n,m(1 <= m <= min(n,20); 1 <= n <= 20)

第二行為n個整數,表示幫助這個同學的獲得的能力值,每乙個快樂值不大於5

output

輸出yukina能獲得的最大能力值

sample input:

425

335

sample output:

64分析

狀態表示:dp[i][j]表示i個人分成j天幫助所獲得的能力值

狀態轉移

把k個人分成j-1天完成幫助,剩下的人在另一天完成幫助,取兩者的最大值。

dp[i]

[j]=

max(dp[i]

[j],dp[k]

[j-1]*

(sum[i]

-sum[k]))

;

三層迴圈

for

(int i=

1;i<=n;i++

)//表示人數

for(

int j=

1;j<=m;j++

)memset

(dp,0,

sizeof

(dp));

for(

int i=

0;i<=n;i++

)for

(int j=

0;j<=m;j++

) dp[i]

[j]=1;

//cout(int i=

1;i<=n;i++

)//表示人數

for(

int j=

1;j<=m;j++)}

cout<[m];

return0;

}

職場之道 A同學和B同學

以下摘自 阿里巴巴離職dba 35歲總結的職業生涯 在阿里最深刻的,還是職場之道給我的震撼。在此,引用一位 puber 的發帖 a 同學,遇到問題,召集會議寫報告搞風險評估,鳳鳳火火,完事後到處匯報心得,各部門都知道了資料部的功勞。b 同學,遇到問題,默默乙個人搞定。這b同學確實厲害,很多問題都獨立...

恰同學少年

最近,我又有了當學生的躁動。看來與老師的緣分還在,而且我的目標也比較遠大,發奮要讀到博士才夠量。其實學習是沒盡頭的,之所以選擇出來工作幾年,一是不想當書呆子,特別是姥爺在我初中時就一直說我是不食人間煙火的書呆子,當時我自己卻不覺得,等到家裡需要我賺錢的時候,才猛然發現自己真的是對在現實世界如何賺錢一...

同學的婚禮

我的手機總是給我恐懼,這個隨身攜帶,損害我身體的小傢伙,在菜市場準備買菜時它響了,我忙亂了起來,手裡拿著2斤豬肉,2斤鯰魚,還揹著2個包,正在掏錢時,它響了,一看陌生的號碼,很窘的拿起它,我的手機最近也被我摔得很窘,除了功能正常,再沒有什麼是正常了,在眾目睽睽下拿起了它,我就更窘起來,因為他們好像看...