CF 833B The Bakery(dp+线段树)

题意:把n个数分红k部分,使得每部分价值之和最大。每部分的价值为不一样数的个数。很容易的能够想到dp,用dp[i][k]表示把前i个数分红k部分所获的最大值。则 dp[i][k]=max(dp[j][k−1]+num[j+1][i],k−1≤j<i) num[i][j]表示a[i..j]的不一样数的个数,可是这样是 O(n2m) 的,会tle。咱们考虑优化状态转移的时间。(比赛时一直在想怎么用莫队
相关文章
相关标签/搜索