![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
dp
文章平均质量分 53
qianlv_
这个作者很懒,什么都没留下…
展开
-
poj 1837 Balance(01背包)
题意:一个天平,从左至右分别是-15到15的加权的钩子,给一些重量的物品,求有几种挂这些物品使天平平衡的方法个数。思路:加权后重量的范围是-7500到7500。故枚举每个物品分别挂在每一个钩的状态,最后输出状态为0的个数#include #include #include #include #include using namespace std;#define CL(a,原创 2013-02-15 16:20:05 · 434 阅读 · 0 评论 -
poj 1976 A Mini Locomotive(二维dp)
题意:有N节装有一定人数的车厢,现在想用3个可以来M节车厢的火车头,求3个火车头最多可以带走多少人思路:1、先预处理出每M节车厢的总人数,出入val数组中 2、f[0][i]=maxm[0]+val[i]; f[1][i]=maxm[1]+val[i]; maxm[0]=MAX(val[i-m+1],maxm[0]); maxm[1]=MAX(f[0][i-m+1原创 2013-02-16 13:43:15 · 438 阅读 · 0 评论 -
FZU 华容道(http://hi.baidu.com/chenwenwen0210/item/f084741a84c9dbee39cb3087)
FZU 华容道题目描述:给定4*N的矩形格子。在里面填上1*2,2*1,1*1,2*2的块,其中2*2的真必需且并只能使用一次。其他的随意。求使得4*N的格子全部填满的总方法数,块之间不能重叠。解法:状态压缩DP,dp[i][j][k]表示前面i-1行都已经摆放完毕,第i行的摆放二进制状态为j,k表示2*2的方块是否已经摆放,放过了就是1,没放过就是0.初值转载 2012-12-13 13:12:46 · 1129 阅读 · 0 评论 -
poj 2923 Relocation(状态压缩+01背包)
思路:总共有2^10的状态,枚举每一个状态用01背包判断是否此状态可以一次运走,并记录下来,接下来又用每一个可以一趟就运走的状态看成一个01背包问题中要装的物品,求出最小的运送的次数。#include #include #include #include #include #define CL(a,b) memset(a,b,sizeof(a))#define MIN(a,b) a原创 2013-02-16 16:52:54 · 340 阅读 · 0 评论 -
poj 1252 Euro Efficiency(多次完全背包)
题意:给6种不同币值的钱,求从【1,100】各个值用最少的硬币组成这些值例如1 2 5 10 20 5068=50+20-1-1 四个思路:多次完全背包或(加钱完全背包一次,再找零背包一次),ps:背包的大小不是100,应该2000左右(因为可以找零#include #include #include #include #include #include原创 2013-02-18 11:55:14 · 430 阅读 · 0 评论 -
poj 1742 Coins
学了种很快的新方法,就是每次填f[j]时直接由f[j-weight[i]]推出,前提是num[j - weight[i]]num每填一行都要清零,num[j]表示当前物品填充j大小的包需要至少使用多少个PS:单调队列和位运算优化http://www.snowoat.tk/?p=161#include #include #include #include #include原创 2013-02-18 20:51:38 · 539 阅读 · 0 评论 -
poj 3260 The Fewest Coins(多重背包+完全背包)
思路:多重背包+完全背包,完全背包用于找零因此从大到小背包#include #include #include #include #include #include #define CL(a,b) memset(a,b,sizeof(a))#define MIN(a,b) (a<b?a:b)#define INF 0x7ffffffusing namespace std;c原创 2013-02-18 21:55:41 · 384 阅读 · 0 评论 -
poj 2392 Space Elevator(排序+多重背包)
思路:按高度的限制大小排序,再多重背包#include #include #include #include #include #include #define CL(a,b) memset(a,b,sizeof(a))#define MAX(a,b) (a>b?a:b)#define MIN(a,b) (a<b?a:b)#define INF 0x7ffffffusing原创 2013-02-18 14:37:32 · 396 阅读 · 0 评论