最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

CF競(jìng)賽題目講解_CF580D(DP+狀態(tài)壓縮)

2022-08-23 16:46 作者:Clayton_Zhou  | 我要投稿

?https://codeforces.com/problemset/problem/580/D


題意:

給你n種菜,吃每種菜都會(huì)得到對(duì)應(yīng)的滿足值。給出k種規(guī)則,如果先吃a再吃b 滿足感就會(huì)提升c。

最后你要吃共m種菜,能獲得的最大滿足值為多少。


思路:

題目范圍 最多18種菜。所以使用狀態(tài)壓縮DP。


f[S][i]為當(dāng)前已選菜的狀態(tài)為S,最后一個(gè)菜為i的最大滿意度.


狀態(tài)轉(zhuǎn)移方程:

f[S1][j] = max(f[S1][j], f[S][i] + a[j] + val[i][j]);

S1表示吃了j之后的新狀態(tài),S表示未吃j之前的狀態(tài),val[i][j]表示i之后向前吃j。

程序復(fù)雜度O((2^n)*n*n)。


集合{a,b,c}的所有子集合為:

{a}, , {c},{a,b},{a,c},{b,c},{a,b,c}

對(duì)應(yīng)的二進(jìn)制數(shù):

1,10,100, 11,101,110,111


如果集合的大小n<32,可以考慮使用狀態(tài)壓縮,

即用一個(gè)數(shù)i<(1<<n)表示一個(gè)子集合。


CF競(jìng)賽題目講解_CF580D(DP+狀態(tài)壓縮)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
本溪市| 黎川县| 乌兰浩特市| 乌审旗| 新蔡县| 山东省| 渝中区| 西乡县| 徐水县| 海安县| 宣汉县| 丁青县| 改则县| 靖远县| 曲阜市| 凤山县| 临泽县| 阿克| 伊宁市| 香河县| 额尔古纳市| 淮滨县| 望城县| 新郑市| 进贤县| 潜山县| 塔河县| 黎城县| 玛纳斯县| 永昌县| 建湖县| 长子县| 白朗县| 从化市| 安达市| 彩票| 眉山市| 江陵县| 新民市| 宜君县| 邹城市|