题解:
线段树经典应用
首先暴力$f[i][j]$表示考虑前i位分成j段的最大值
转移$f[k][j-1]+cost(k+1,i)$枚举k转移
不同数的经典套路就是从它到它前驱这一段
于是维护每个数前驱然后线段树区间+1区间查询最大值就可以了