//提取資訊包括從s到t之間的和
//但是n較大這樣dp[i][j]的形式顯然不行,那麼如果轉換
//其實我們除了記錄[i,j]之間的和那麼可以記錄以i開頭和以i結尾兩種情況
//後來發現根本不用記錄以什麼為開頭或者結尾,每次更新前面一段值就行
//725k 438ms
#include using namespace std;
#define max_n 50010
//static int dp1[max_n];//以字元i開頭的最大和
//static int dp2[max_n];//以字元i結尾的最大和
static int n;
static int a[max_n];
static void dp()
//找出開頭狀態的最大值
for (int i=n-2;i>=0;i--)
//組合
for (int i=0;ians = max(ans,rest1[i]+rest2[i+1]);
printf("%d\n",ans);
}int main()
return 0;
}
POJ 2479的簡單想法
這道題是簡單的dp例題拓展,問題是 給定一行數字,然後求這行數字中兩個連續子串行和的最大值,並輸出 兩個子串行不能有重疊的部分 由於是初學者,可能想法比較侷限。我的總體思路是這樣 這題肯定和最大求子序列有關,然後進行工作 用dp1 i 表示以第i個數結尾的最大子串行的和,用dp i 表示已第i個數為...
POJ 2479 最大子段和
poj 2479 最大子段和 poj 2479嚴格來說不是單純的最大子段和,它是乙個雙向的最大子段和,為了弄清雙向的最大子段和就必須弄清楚單向的最大子序和。單向最大子段和問題如下 在序列a 1.n 任意乙個ai都是整數,有正有負 中找出乙個子串行a p.q 使得m ap ap 1 aq 1 aq最大...
6 4 3 分步分析(Evaluating)示例
6.4.3 分步分析 evaluating 示例 能這像這樣自信地使用高階函式,是需要一些時間的,尤其是巢狀使用。我們將研究前面清單中的 的地,通過跟蹤幾個樣本輸入。從抽象的問題 一般情況下這段 做什麼?到具體的問題 特定情況下這段 做什麼?通常可以幫助澄清真相。如果我們第一次輸入乙個無效的值,會發...