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

歡迎光臨散文網(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)遵守國家法律
镇沅| 梅州市| 枞阳县| 泸定县| 克拉玛依市| 凌海市| 枞阳县| 高清| 尼木县| 红河县| 古丈县| 锡林郭勒盟| 潼南县| 瑞金市| 馆陶县| 隆林| 贵港市| 分宜县| 法库县| 甘肃省| 长寿区| 松江区| 凤山市| 临邑县| 台东市| 贵溪市| 安阳县| 石柱| 天台县| 华阴市| 当雄县| 沅江市| 浙江省| 正蓝旗| 湘潭市| 屏东县| 阜康市| 延吉市| 普安县| 台州市| 临湘市|