区间dp


CQOI2007]涂色 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

区间dp

int f[50][50];
//f[i][j]表示将区间[i,j]染成对应颜色的最少次数
if i=j,则f[i][j]=1;
//只需要第一次涂时多涂一格,
if i!=j &&s[i]=s[j],则f[i][j]=min(f[i-1][j],f[i][j-1]);
//需要将区间分成两半来染色,枚举断点k
if i!=j && s[i]!=s[j],则f[i][j]=min(f[i][j],f[i][k]+f[k+1][j]);