求m段最大子串行和

2021-08-17 16:14:33 字數 471 閱讀 9013

每日打卡(1/1)

題目大意:

求m段最大子串行和

題目思路:

對於前i個數分成j組,可以得到最大的子串行和可以記為dp[i][j],

那麼我們對於第i個數,有兩種方法:

(1)直接成為當前組的最後乙個,即dp[i][j] = dp[i-1][j]+a[i];

(2)或者我們新開一組,讓他成為第乙個,那麼前i-1個數就可以分成j-1組,即dp[i][j] = max(dp[k][j-1]+a[i]),其中k∈[1,i-1]。

就可以得到下列**

#includeusing namespace std;

const int maxn = 10000+5;

int n,m,a[maxn],dp[maxn][maxn];

int main()

}cout<} return 0;

}

求最大子段和

給定乙個整數序列,你需要找出兩個連續子段,保證這兩個子段不能重疊,並且使得這兩個子段中所有整數的和最大。輸入描述 包含一系列的測試用例。第1行是乙個整數,表示測試用例的總數t,1 t 30 第1行後面跟了乙個空行。每個測試用例包括3行 第1行是乙個整數,表示該整數序列的長度n,2 n 5000 第2...

求最大子段和

給定乙個整數序列,你需要找到兩個連續子段,保證這兩個子段不能重疊,並且使得這兩個子段中 所有整數的和最大。輸入描述 包含一系列的測試用例,第1行是乙個整數,表示測試用例的總數t,1 t 30 每個測試用例包括3行 第1行是個整數,表示該整數序列的長度n,2 n 5000 第2行是乙個包含n個整數的序...

求最大子串行和

include using namespace std int maxseqsum const int a,int n o n 2 return s2 int maxseqsum2 const int a,int n o n else if s1 0 return s2 int maxseqsum3...