写完全背包

写完全背包

补全 knap_full:同一件能拿很多次,容量从小到大循环。输出容量 10 的最大价值。

阅读更多 →
同一批物品,两种规则各是多少

同一批物品,两种规则各是多少

三件 (重3值8)、(重4值9)、(重5值11),容量 10。一边每件只能拿一次,一边同一件能拿很多次。运行下面这段程序: def knap1d(items, cap): dp = [0] *

阅读更多 →
⚠️ 为什么正着填就对了

⚠️ 为什么正着填就对了

完全背包正着填是对的,因为【0】。

阅读更多 →
完全背包的一维写法怎么填

完全背包的一维写法怎么填

完全背包压成一维之后,容量应该【0】。

阅读更多 →
完全背包和 0/1 差在哪

完全背包和 0/1 差在哪

完全背包和 0/1 背包的唯一区别是【0】。

阅读更多 →
⚠️ 正着填和倒着填,差在哪

⚠️ 正着填和倒着填,差在哪

一件只拿一次,还是能拿多次 只一次 拿多次 把一维背包写两遍,只改容量循环的方向:一个从大到小,一个从小到大。同一批物品、同一个容量 10。 把两个答案拼起来输出(倒着填的在前)。

阅读更多 →
写一维 0/1 背包

写一维 0/1 背包

一件只拿一次,还是能拿多次 只一次 拿多次 补全 knap1d:只用一个一维数组,容量从大到小循环。输出容量 10 时的最大价值。

阅读更多 →
写二维 0/1 背包

写二维 0/1 背包

一件只拿一次,还是能拿多次 只一次 拿多次 补全 knap2d:dp[i][c] 是前 i 件、容量 c 时的最大价值。输出 dp[3][10]。

阅读更多 →
⚠️ 那个 40 是怎么填出来的

⚠️ 那个 40 是怎么填出来的

一件只拿一次,还是能拿多次 只一次 拿多次 回到「贪心」那条路线(`l1_algo_07_n06`)里的三件东西:(重6值30)、(重5值20)、(重5值20),容量 10。当时只说了最优解是 40,

阅读更多 →
一维表最后长什么样

一维表最后长什么样

一件只拿一次,还是能拿多次 只一次 拿多次 三件物品 (重3值8)、(重4值9)、(重5值11),容量 10,每件最多拿一次。运行下面这段程序,看整张一维表: def knap1d(items, ca

阅读更多 →