状态转移方程没看懂
查看原帖
状态转移方程没看懂
295864
eigw22h619楼主2021/9/3 17:39

请问设断点为k,为什么f[i][j]=min(f[i][j],f[i][k]+f[k+1][j]) ?

题意是求对字符串的最少染色次数,设f[i][j]为字符串的子串s[i]~s[j]的最少染色次数,我们分析一下:

当i==j时,子串明显只需要涂色一次,于是f[i][j]=1。

当i!=j且s[i]==s[j]时,可以想到只需要在首次涂色时多涂一格即可,于是f[i][j]=min(f[i][j-1],f[i+1][j])

当i!=j且s[i]!=s[j]时,我们需要考虑将子串断成两部分来涂色,于是需要枚举子串的断点,设断点为k,那么f[i][j]=min(f[i][j],f[i][k]+f[k+1][j])
2021/9/3 17:39
加载中...