摘要: 因为 0 ≤ Vi , Ci ≤ 10 , 范围很小,故可以转化为多重背包+二进制优化来解决。分解为系数为1,2,4,8...Mi-2^k+1的物品再做01背包。View Code 1 /* 2 Author:Zhaofa Fang 3 Lang:C++ 4 */ 5 #include <cstdio> 6 #include <cstdlib> 7 #include <sstream> 8 #include <iostream> 9 #include <cmath>10 #include <cstring>11 #incl 阅读全文
posted @ 2013-02-19 17:36 發_ 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 题意:有n个品牌,每个品牌至少买一件。01背包加上一维,设计状态dp[k][i]表示前k种花费i所取得的最大值,状态可由前k-1种和当前品牌取得,注意初始化和方程的位置(无后效性)。View Code 1 /* 2 Author:Zhaofa Fang 3 Lang:C++ 4 */ 5 #include <cstdio> 6 #include <cstdlib> 7 #include <sstream> 8 #include <iostream> 9 #include <cmath>10 #include <cstring&g 阅读全文
posted @ 2013-02-19 13:13 發_ 阅读(136) 评论(0) 推荐(0) 编辑