今天继续学习动规,明天将学习01背包
以下是今天一些题目的回顾
合并石子:区间动规 for (int len = 2; len <= n; len++)
for (int lft = 1; lft + len - 1 <= n; lft++)
{
int rgh = lft + len - 1;
for (int k = lft; k < rgh; k++)
f[lft][rgh] = min(f[lft][rgh], f[lft][k] + f[k + 1][rgh] + s[rgh] - s[lft - 1]);
}
生产计划:二分
最大连续子序列和:接在前个元素后/自成序列头 f[i] = max(a[i], f[i - 1] + a[i]);
最大子段和(sum):与上题类似,但需要存前缀最大子串和后缀最大子串
小结:已稍微领略到动规题画表的精髓,但离50题迎来突破还有一定距离。
ps:明天放假半天,爽!