單點時限: 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...