2958 求上公升子串行和的最大值

2021-10-04 10:52:49 字數 1009 閱讀 2591

單點時限: 2.0 sec

記憶體限制: 256 mb

由非負整數 bi(0⩽i乙個長度為 n 的序列 a0,a1,…,an−1,存在多種上公升子串行:

ai0,ai1,…,aik(0⩽i0例如:序列 1, 7, 3, 5, 9, 4, 8 的上公升子串行有 (1, 7)、(3, 5, 8)、(1, 3, 5, 9) 等。這些上公升子串行中序列和最大為 18,為上公升子串行 1, 3, 5, 9 的和。

對於給定的序列,求出上公升子串行和的最大值。

輸入格式

第 1 行:整數 t (1≤t≤10) 為問題數

第 2 行:第 1 個問題的整數 n(1⩽n⩽5000)

第 3 行:n 個整數ai(0⩽ai⩽4000), 由乙個空格隔開。這些數的值有些可能是相等的。

後面是第 2 ∽ t 個問題的資料。格式與第 1 個問題相同。

輸出格式

對於每個問題,輸出一行問題的編號(0 開始編號,格式:case #0: 等),然後在一行中輸出上公升子串行和的最大值。

樣例input27

1 7 3 5 9 4 8

4100 20 20 3

output

case #0:

18case #1:

100

/*

思路:dp[i]表示以a[i]為結尾的最大增序列和

*/#include

using

namespace std;

intmain()

;for

(int j =

0;j < n; j++

) cin>>a[j]

;int ans=0;

for(

int j =

0; j < n; j++)}

ans=

max(ans,dp[j]);

}printf

("case #%d:\n%d\n"

,i,ans);}

return0;

}

上公升子串行 求和最大值

problem description 乙個只包含非負整數的序列bi,當b1 b2 bs的時候,我們稱這個序列是上公升的。對於給定的乙個序列,我們可以得到一些上公升的子串行,這裡1 i1 i2 ik n。例如 對於序列,有它的一些上公升子串行,如,等等。這些子串行中序列和最大的是子串行,它的所有元素...

求連續子串行的最大值

問題描述 有一串數字 可正可負的int,放在陣列num裡 要求找到起始位置start和終止位置end,使得從start位置到end位置的所有數字之和最大,返回這個最大值max。演算法思想 使用動態規劃。設 f x 為以 a x 終止且包含 a x 的最大序列的和,有 f 1 a 1 f x 1 f ...

最大上公升子串行和

3532 最大上公升子串行和 檢視 提交 統計 提問 總時間限制 1000ms 記憶體限制 65536kb 描述 乙個數的序列bi,當b1 b2 bs的時候,我們稱這個序列是上公升的。對於給定的乙個序列 a1,a2,an 我們可以得到一些上公升的子串行 ai1,ai2,aik 這裡1 i1 i2 i...