每日打卡(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...