动态规划-背包
tzb592825420
这个作者很懒,什么都没留下…
展开
-
codeforces 189A Cut Ribbon
很简单的一道题,暴力就行了,我这里用背包dp来做。本题是一道完全背包。 0-1背包的状态转移方程:dp[i][j]表示用前j容量装前i件物品,dp[i][j]=max(dp[i-1][j-v[i]]+w[i],dp[i-1][j]),可省略第一维,循环必须V:v-0; 完全背包:dp[i][j]=max(dp[i-1][j],dp[i][j-v[i]]+w[i]),可省略第一维,循环V:0-v原创 2015-01-29 17:18:25 · 604 阅读 · 0 评论 -
codeforces 234F - Fence
感觉是个背包,开始想用dp[i][j]表示红色容量为j的最小值,同时记录这时i的颜色,但这样状态无法转移,可以再加一维dp[i][j][0]表示i为红色,dp[i][j][1]表示i为绿色,枚举j时表示的是前i个恰好用完j容量,绿色容量为tot[i]-j,所以初始化时dp[0][0][0]=dp[0][0][1]=0,其他为无穷大。 #include #include #include #inc原创 2015-01-31 16:32:48 · 505 阅读 · 0 评论 -
hdu5148 树形dp,分组背包
dp[i][j]表示以i为根节点的子树中选j个城市贡献边长的最小值,怎样由子树向上递推呢,子树是一个天然的组,dp[u][j]可以这样理解,u子树容量为j是由上一层dp[u][j-f]推出的,应用了滚动数组。 #include #include #include #include #include #include #include #include #include #include #def原创 2015-05-18 17:45:24 · 545 阅读 · 0 评论 -
zoj3812 We Need Medicine 背包+位优化
We Need Medicine Time Limit: 10 Seconds Memory Limit: 65536 KB Special Judge A terrible disease broke out! The disease was caused by a new type of virus, which will lead to lethal lymp原创 2015-08-27 00:14:02 · 433 阅读 · 0 评论 -
hdu 5445 Food Problem 分组背包,二进制拆分
题意:要得到至少p的能量,有n种甜品,每种甜品有能量值t,体积u,数量v,运送这些甜品的卡车有m种,每种有容积x,花费y,数量z。求运送的甜品至少能量达到p的最小花费。p 分析:首先可以算出的到p能量所需的最小体积,在算出得到这个最小体积的最小花费。最小体积可能很大,由于最小花费 #include #include #include #include #include #include #in原创 2015-09-18 15:44:27 · 394 阅读 · 0 评论