首先看这个得分方式,容易发现就相当于分k段,每段的值和两两乘起来. 这样就很容易列出dp方程:设f[i][j]为到j分成分成i段,转移是 \[ f[i][j]=max { f[k][j]+s[k]*(s[j]-s[k]) } \] 然后显然这个可以斜率优化,随便推一推式子,假设k选p大于选q,那么 \[ f[p][j]+s[p]*(s[j]-s[p])>f[q][j]+s[q]*(s[j]-s[q]) \] \[ f[p][j]+s[p]*s[j]-s[p]^2>f[q][j]+s[q]*s[…