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。咱們考慮優化狀態轉移的時間。(比賽時一直在想怎麼用莫隊
相關文章
相關標籤/搜索