2011年9月7日

poj3624Charm Bracelet 01背包

摘要: 经典动态规划题目,这个题目最开始用的书本的思想,用m[i][j]表示前i件物品重量不超过j的最大价值,则dp方程为:m[i+1][j]=max(m[i][j-w[i+1]]+p[i+1],m[i][j]),也就是从i+1件物品中得到重量不超过j的最大价值的时候,第i+1件要么选要么不选,但是这个题目由于w和n比较大,这么会MLE,所以必须缩小空间,由于m[i][j]只和当前i的重量和价值有关系,对于当前的物品我们要么选要么不选,我们直接用一维数组表示 dp[j]=max(dp[j-w[i]]+p[i],dp[j])。计算的时候要从后往前计算。代码:#include <iostream&g 阅读全文

posted @ 2011-09-07 21:40 buptLizer 阅读(164) 评论(0) 推荐(0)

枚举

摘要: 1.生理周期题目链接:http://poj.org/problem?id=1006水题,直接枚举满足条件的日期。2.称硬币题目链接:http://poj.org/problem?id=1013一共12个硬币,每个硬币两种状态,我们枚举可能的假币,一共24种。3.完美立方Perfect Cubes题目链接:http://poj.org/problem?id=1543求满足等式a^3=b^3+c^3+d^3的所有可能的组合。水题。for(a=5;a<=n;a++) { for(b=2;b<n;b++) {if(m[a]<3*m[b])break; for(c=b;c<n;c 阅读全文

posted @ 2011-09-07 10:57 buptLizer 阅读(237) 评论(0) 推荐(0)

导航