摘要: P1853 投资的最大效益 精心包装的背包. 既然债券可以随时买卖,那么就不需要记录什么买卖与否的状态,直接对于每一年选择买还是不买就行了,并且在当年由此直接获得利息,利息直接加到总资产上面,不用考虑本金存取的问题,转化为完全背包问题. 应该注意到,这里的n年是一个模板外的东西,先解决模板部分. f 阅读全文
posted @ 2020-12-04 19:47 goverclock 阅读(112) 评论(0) 推荐(0) 编辑
摘要: P1466 [USACO2.2]集合 Subset Sums 这也能动规,而且还是01背包. dp[i][j]表示从1~i的数字中选择,能够得到和为j的方案数.那么dp[i][0]=1.对于每个数字选或者不选,有: dp[i + 1][j] = dp[i][j] + dp[i][j - i],这里的 阅读全文
posted @ 2020-12-04 19:17 goverclock 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 小A点菜 方案数问题.背包. 使用dp[i][j]表示前i道菜刚好能花费完j钱的方案数,压成一维.(dp[j]) 那么明显地,dp[0]=1. 对于每个j,花完j钱的方案划分为两种:点了i菜和没点i菜,将这两种情况的方案数加起来,即dp[j] = dp[j] + dp[j - w[i]].(加号左边 阅读全文
posted @ 2020-12-04 15:22 goverclock 阅读(50) 评论(0) 推荐(0) 编辑
摘要: NASA的食物计划 多一个维度的01背包问题. dp[i][j][k]表示在前i种食品中选择出总体积不大于j且总重量不大于k的食物所能得到的最大卡路里. 省略细节的描述,压维后用dp[j][k]存储.因为是01背包所以j,k都从最大值开始循环并递减. j和k并没有优先级问题,简单地两层循环即可. 可 阅读全文
posted @ 2020-12-04 15:08 goverclock 阅读(106) 评论(0) 推荐(0) 编辑