题解: 首先区间dp是比较好想到的 然后我感觉接下来就是乱搞... 我们会发现接下来的操作 无非就是 用一种颜色去覆盖这整个区间 然后在做 于是我用了比较暴力的做法,f[i][j][k]表示i-j这段区间被k颜色完全覆盖 那么转移就是枚举f[i][kk][k] f[kk+1][j][k] 另外要注意还有同层之间可以用全部覆盖成一个颜色来转移 最后再跑一遍dp(这时候已知了g[i][j] (覆盖i-j的最小值)) 代码: #include <bits/stdc++.h> using namesp…