题目
一个字符串的权值是这个串包含的不同字符个数。
给定一个长度为n的字符串,把它分为k个连续非空字段,每个字符必须在某一段中,最小化字符串的权值和。
题解
肯定要DP,问题是怎么设状态。
这个状态需要既表示了位置,又表示了块数,还表示了当前的答案。
设法①,设 f[i][j] 表示做到i,切了j次的答案。这样子顶多撑得下 n≤200 .
转移显然。(然而斜率优化可以过n≤1500)
还有一种方法,不考虑位置的严格转移(即i推向i+1),但是状态存的是字符串的位置。
设法②,可以设 f[i][j] 表示目前分割了i块,答案为i+j的最右边的位