
背包
文章平均质量分 76
yan_____
不跟你介绍
展开
-
hdu 3535 Are You Busy 分组背包,组内至少放一个和组内至多放一个
AreYouBusy有n组工作,T时间,每个工作组中有m个工作,改组分类是s,s是0是组内至少要做一件,是1时最多做一件,2时随意,每项工作的描述是花费的时间和获得的快乐值,求在T时间内可获的最大快乐值。s=0时必选,0组内的物品可以和上一可达状态组合(只放一件),也可以和当前的可达状态组合(放多件),为使0组内的物品一定可以选上及判断状态的合法性,令dp中除dp[0]外均为-原创 2013-01-22 17:20:09 · 2122 阅读 · 3 评论 -
浙江13省赛B 拼凑砝码
题目Break Standard WeightTime Limit: 2 Seconds Memory Limit: 65536 KB The balance was the first mass measuring instrument invented. In its traditional form, it consists of a pivot原创 2013-05-12 19:56:11 · 939 阅读 · 0 评论 -
hdu 3127 二维完全背包,长方形布料剪裁求最大价值
想法很直接有效#include#include#include#includeusing namespace std;int dp[1100][1100];struct node{ int x,y; int val;}Node[24];int max(int a,int b){ return a>b?a:b;}int main(){ int原创 2013-04-07 20:41:32 · 717 阅读 · 0 评论 -
zoj 3211 砍树 有顺序的dp
zoj 3211有n棵树,m天,每天只能砍一棵树,每棵树的初始价值为ai,每过一天价值增长bi,求m天砍树得到的最大价值。开始贪心不可以,n棵树长m天好像可以分成n*m棵树再分组背包(一棵树只能砍一次)(装酒问题),dp[i][j]=max(dp[i-1][j],dp[i-1][j-1]+w[i]),但是一天有只能砍一棵树,有两个限制条件,直接背包有后效性,(放第i棵树可能改变dp[i-1原创 2013-03-22 14:35:51 · 1215 阅读 · 0 评论 -
uva 10163 - Storage Keepers 每组最多选一个的分组背包
uva 10163 有N个仓库,总共有M个人来应聘仓库看守员,每个人的能力是P,一个人可以看守多个仓库(设k个),每个仓库只能被一个人看,仓库的安全系数为p/k,公司的安全底线为最低的仓库安全系数,每个人每月的薪水是P,求能使安全底线最高的值和达到此值中最小的花费。有两个条件,最低线和花费,要加一维开三维的数组,把每个人看1到n个仓库分作w为p,c为p/k的物品, dp[i]原创 2013-03-17 14:23:15 · 1031 阅读 · 0 评论 -
hdu 3466 Proud Merchants
hdu 3466 最近,iSea想去一个古老的国家。很长一段时间,它都是世界上最富有强大的国家。因此,这个国家里的人一直非常骄傲,即使他们的国家不再那么富有。 商人最典型,他们每个人只卖一种物品,价格是Pi,但是如果你的钱少于Qi,他们不会卖给你东西,并且iSea对每件物品都有一个估价Vi。 如果他有M单位的钱,那么他能得到的最大价值是多少?按照q-p排序,原创 2013-03-02 16:42:47 · 901 阅读 · 0 评论 -
uva 10280 Old Wine Into New Bottles 有剪枝的完全背包
uva 102801、这道题如果直接把每个酒瓶的可用容量来做完全背包的话会超时,但是由最低的容量不低于95%,最高的容量不超过99%,由于容量的连续性有一些规律可循,可藉此优化: 考虑任意一种瓶子能够将酒全装满的情况,最小容量min,最大容量max,只要酒的体积x在[min,max]|[2*min,2*max]|……[k*min,k*max]的范围内就能完全装满,而max比mi原创 2013-03-14 01:47:49 · 1640 阅读 · 1 评论 -
hdu 2126 Buy the souvenirs
hdu 2126m元,n种纪念品,求能买最多种数的方法数#include#include#define maxn 550#define INF 1<<30int dp[maxn][35],n,m,t,flag;int c[35],w[35];int main(){ int i,j,k; scanf("%d",&t); while(t--) { memset(c,0原创 2013-02-28 16:10:43 · 707 阅读 · 0 评论 -
poj 2923 Relocation 状态压缩01背包
#include#include#define INF 1<<30int dp[1<<10];int w[20],n,a,b;int t[1<<10];int min(int a,int b){ return a>b?b:a;}int find(int r){ int i,j,val; int vis[1<<10]; memset(vis,0,s原创 2013-02-28 13:44:12 · 531 阅读 · 0 评论 -
uva 624 CD 01背包状态压缩记路径
uva 624 cd要把cd上的音乐导到磁带里,要求尽量使磁带剩余的空间小并按顺序打印出每次磁带中的每个音轨长度。tracks不超过20,且按顺序输出,状态压缩记录路径。#include#include#define maxn 10010int n,w[maxn],m; //花费都是1int dp[maxn];int state[maxn];int main(){ int原创 2013-02-28 17:04:48 · 1053 阅读 · 0 评论 -
hdu 1712 ACboy needs your help 简单分组背包 每组至多选一个
hdu 1712#include#include#define maxn 110int dp[maxn][maxn],f[maxn][maxn],n,m;//n课程数 m天数int end;int max(int a,int b){ return a>b?a:b;}int main(){ int i,j,k; while(~scanf("%d %d"原创 2013-03-08 12:27:58 · 637 阅读 · 0 评论 -
hdu 2844 Coins 多重背包 二进制优化 算是否能组成的背包
hdu 2844 Coins#include#include#define size 100010#define csize 110int dp[size];int c[csize];int num[csize];int v;int max(int a,int b){ return a>b?a:b;}void ZeroOnePack(int cost,int we原创 2013-03-03 20:24:42 · 487 阅读 · 0 评论 -
hdu 1561 The more, The Better 树形DP+背包
The more, The BetterTime Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3511 Accepted Submission(s): 2056Problem DescriptionACboy原创 2013-01-22 11:08:49 · 719 阅读 · 2 评论 -
hdu 1059 Dividing 多重背包
DividingTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 10502 Accepted Submission(s): 2935Problem DescriptionMarsha and Bill原创 2013-01-20 18:34:03 · 442 阅读 · 0 评论 -
hdu 3033 I love sneakers! 必选分组背包
经过几个月的努力,Iserlohn终于获得了一笔数量可观的奖学金。作为一名运动鞋狂热者,他打算把他全部的钱花在运动鞋商店里。 这里有几种Iserlohn想收集的运动鞋品牌,向乔丹和耐克。每一个牌子都有几种产品。由于Iserlohn对运动鞋有绝对的狂热,他希望每种牌子至少买一双。 尽管每双鞋都有确定的标价,Iserlohn仍然按照他自己的喜好给每双鞋定了价值。带着可观但是有限的钱原创 2013-01-25 14:12:56 · 1201 阅读 · 0 评论 -
hdu 2546 饭卡 换了问法的01背包
饭卡里钱数多于5元和小等于5元情况不同,要想最后余额最少,一定是最后买最贵的菜,且卡里钱大等于5越小越好,但饭卡买完最贵的菜外不一定能刚好刷到5元,一定是大等于5,用m-dp[m-5]能凑成最小大于5元的钱数去买最贵的菜,即余额最少的钱数饭卡Time Limit : 5000/1000ms (Java/Other) Memory Limit : 32768/32原创 2013-01-25 15:50:21 · 4619 阅读 · 1 评论 -
hdu 3449 Consumer 依赖背包
依赖背包 事实上,这是一种树形DP,其特点是每个父节点都需要对它的各个儿子的属性进行一次DP以求得自己的相关属性。fj打算去买一些东西,在那之前,他需要一些盒子去装他打算要买的不同的物品。每一个盒子有特定要装的东西(就是说如果他要买这些东西里的一个,他不得不先买一个盒子)。每一种物品都有自己的价值,现在FJ只有W元去购物,他打算用这些钱买价值最高的东西。Consumer原创 2013-01-24 21:03:42 · 1871 阅读 · 1 评论 -
hdu 1011 Starship Troopers 简单树形DP
就是一个普通的依赖背包,一个房间是一个物品,房间中所有bugs是花费,brains是重量,没有留人收集brains一说要注意背包的概念和树形背包是无向边的情况,无相加两条边对结果没有影响Starship TroopersTime Limit : 10000/5000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other原创 2013-01-22 21:05:55 · 579 阅读 · 0 评论 -
uva 10130 超市减价全家买东西
uva 1013001背包,给你n种物品,m个人,给每个人能承受的最大重量,求可以最多买到的价值是多少不知道There is a SuperSale in a SuperHiperMarket. Every person can take only one object of each kind, i.e. one TV, one carrot, but for extra low p原创 2013-05-13 20:02:12 · 1205 阅读 · 0 评论