其他分享
首页 > 其他分享> > [SCOI2009]粉刷匠

[SCOI2009]粉刷匠

作者:互联网

首先,这题明显是有无后效性的,所以我们并不需要对顺序进行过多的考虑
感觉有一点像完全背包
所以我们考虑f[i][j]表示考虑刷到i,刷了j次最多可以正确粉刷多少个
然后我们再考虑g[i][j][k]为第i块板刷了j次,而且刷的是前k个

当我们考虑第i个刷了k次时
f[i][j]=max(f[i][j],f[i-1][j-k]+g[i][k][l])

接下来要考虑g的转移方程

g的怎么考虑呢?
在我们已经刷过j-1次,前l个的基础上,处理出刷j次,刷前k个
那么我们考虑多刷的那些是全部刷上红色更优还是全部刷上蓝色更优
为了方便计算,我们利用前缀和记录第i行前s个位置有几个红色sum[i][s]
g[i][j][k]=max(g[i][j][k],g[i][j-1][l]+max(sum[i][k]-sum[i][l],k-q-sum[i][k]+sum[i][l])

标签:更优,max,sum,粉刷,SCOI2009,考虑,我们
来源: https://www.cnblogs.com/sheepcsy/p/16485307.html