找出第一个装不下的级数

补全:用 long long 算爬楼梯的走法数,找出第一个超过 INT_MAX 的级数并输出。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

DP 里的状态指什么

第 1 步:上面是每家的钱,下面是 dp 第 2 步:到第 1 家:偷或不偷取大的 第 3 步:到第 2 家:偷或不偷取大的 第 4 步:到第 3 家:偷或不偷取大的 第 5 步:到第 4 家:偷或不偷取大的 第 6 步:到第 5 家:偷或

开始练习 →

转移方程在说什么(C++)

状态转移方程说的是【0】。

开始练习 →

定状态时最要紧的一条(C++)

状态定得对不对,最要紧的一条是【0】。

开始练习 →

打家劫舍的表长什么样

沿街五户人家钱数是 [2, 7, 9, 3, 1],相邻两家不能都偷。dp[i] 表示前 i 家最多能拿多少。 运行下面这段程序: #include <algorithm> #include <iostream> #

开始练习 →

最大子段和的表

dp[i] 表示以第 i 个数结尾的最大连续和。 运行下面这段程序: #include <algorithm> #include <iostream> #include <string> #include

开始练习 →

写打家劫舍

补全 rob:返回整张 dp 表,dp[i] 是前 i 家能拿到的最多钱。输出最后一项。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

写最大子段和

补全 max_sub:cur 是以当前这个数结尾的最大和,best 一路记住最大的那个。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

两个转移方程写在一起

把打家劫舍和最大子段和都补全,把两个答案拼起来输出(打家劫舍在前)。写完对照一下两个转移方程——形状几乎一样。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

初始值设错了会怎样

第 1 步:全是负数的一组数 第 2 步:左从首个数起,右从 0 起 第 3 步:左边一路更新到最大的那个 第 4 步:右边是 0:数组里没有它 -3 -1 -4 -3 0 -1 dp 表的初始值设错了,后果是【0】。

开始练习 →