
背包问题
v5zsq
新的一天,新的不会
展开
-
HDU 5445 Food Problem(多重背包)
Description n种点心,每种点心有一定的能量t,体积u和数量v,现在要用m种卡车搬运这些点心,每种开车有一定的容量x,花费y和数量z,点心可以分割但选一块就要都选,现在问将运送总能量不小于p的点心的最小花费 Input 第一行一整数T表示用例组数,每组用例首先输入三个整数n,m,p分别表示点心种类数,车的种类数以及目标能量值,之后n行每行三个整数ti,ui,vi表示第i种点心你的能量原创 2016-08-25 10:29:22 · 575 阅读 · 0 评论 -
POJ 3624 Charm Bracelet(01背包)
Description 往手镯上镶嵌宝石,当然所嵌宝石的总重量是有上限的,要求所嵌宝石的总价值最大 Input 第一行两个整数n和m分别表示宝石数量和所嵌宝石的重量上限,之后n行每行两个整数w和d表示该宝石的重量及其价值 Output 输出所嵌宝石的总价值 Sample Input 4 6 1 4 2 6 3 12 2 7 Sample Output 23 Soluti原创 2015-08-31 08:30:20 · 673 阅读 · 0 评论 -
HDU 1864 最大报销额(01背包)
Description 现有一笔经费可以报销一定额度的发票。允许报销的发票类型包括买图书(A类)、文具(B类)、差旅(C类),要求每张发票的总额不得超过1000元,每张发票上,单项物品的价值不得超过600元。现请你编写程序,在给出的一堆发票中找出可以报销的、不超过给定额度的最大报销额 Input 测试输入包含若干测试用例。每个测试用例的第1行包含两个正数 Q 和 N,其中 Q 是给定的报销额原创 2015-08-30 12:47:15 · 548 阅读 · 0 评论 -
POJ 1742 && HDU 2844 Coins(多重背包)
Description 给你一定数量和面值的纸币,在不超过总钱数m的情况下,用所给的纸币共能形成多少种钱数 Input 多组用例,每组用例第一行两个整数分别为纸币种类数n和总钱数m,第二行输入n中纸币的价值和其数量,以n=0,m=0结束输入 Output 对于每组用例,输出用各种纸币能组成的钱数 Sample Input 3 10 1 2 4 2 1 1 2 5 1 4 2 1原创 2015-08-25 12:44:59 · 464 阅读 · 0 评论 -
ACdream 1100 瑶瑶饿了(Folyd+完全背包)
Description 你们肯定都不知道从前有个很聪明的妹子,她的名字叫瑶瑶(tsyao)。一天,瑶瑶在自己家里建造了一个魔法阵。她在魔法阵找吃的,这个魔法阵有n种食物,每种食物有xi份,而且每种食物位于魔法阵的不同位置(相同食物位于相同位置)。吃第i种食物,每一份会消耗ti的时间,获得wi的价值。当然这个魔法阵有魔力,每次吃一种食物后瑶瑶会传送回到自己家(耗时0),并且不能再吃该种食物。另外,原创 2015-07-25 13:07:21 · 642 阅读 · 0 评论 -
POJ 1276 Cash Machine(多重背包)
Description 有各种不同面值的货币,每种面值的货币有不同的数量,请找出利用这些货币可以凑成的最接近且小于等于给定的数字cash的金额 Input 多组用例,以文件尾结束输入。 每组用例以cash N n1 D1 n2 D2 ..nN DN形式输入 (0cash为货币和上限,N为货币种类,ni和Di分别为每种货币的面额和数量 Output 对于每组用例,输出利用给出货币可以原创 2015-06-21 17:51:52 · 1208 阅读 · 0 评论 -
HDU 2546 饭卡(01背包)
Description 电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额。如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够)。所以大家都希望尽量使卡上的余额最少。某天,食堂中有n种菜出售,每种菜可购买一次。已知每种菜的价格以及卡上的余额,问最少可使卡上的余额为多少。 Input 多组数据。对于每组数据:原创 2015-10-03 11:04:28 · 603 阅读 · 0 评论 -
HDU 6083 度度熊的午饭时光(01背包)
Description度度熊最期待每天的午饭时光,因为早饭菜品清淡,晚饭减肥不敢吃太多(胖纸的忧伤T.T)。百度食堂的午餐超级丰富,祖国各大菜系应有尽有,度度熊在每个窗口都有爱吃的菜品,而且他还为喜爱的菜品打了分,吃货的情怀呀(>.<)。但是,好吃的饭菜总是很贵,每天的午饭预算有限,请帮度度熊算一算,怎样打饭才能买到的最好吃的饭菜?(不超过预算、不重样、午餐等分最高的情况下,选择菜品序号加和最小,加原创 2017-08-17 10:49:45 · 533 阅读 · 0 评论 -
HDU 6092 Rikka with Subset(多重背包)
Description一个集合有nn个元素a1,...,na_{1,...,n},和为mm,现在给出B[i],i∈[0,m]B[i],i\in [0,m]表示该集合子集中和为ii的数量,要求重构出该集合Input第一行一整数TT表示用例组数,每组用例首先输入两个整数n,mn,m分别表示集合元素个数和集合总和,之后输入m+1m+1个整数B0,...,mB_{0,...,m}(1≤T≤70,1≤n≤50原创 2017-09-06 09:38:04 · 485 阅读 · 0 评论 -
HDU 6140 Hybrid Crystals(01背包)
Description给出一个序列的绝对值a[i]a[i]和其符号序列b[i]b[i],b[i]=Lb[i]=L表示a[i]a[i]是真实值,b[i]=Db[i]=D表示a[i]a[i]是真实值的相反数,b[i]=Nb[i]=N表示该值政正负均可,且a,ba,b序列满足ai≤∑j=1i−1aj[bj=N]+∑j=1i−1aj[bi=L∩bj=L]+∑j=1i−1[bi=D∩bj=D](2≤i≤n)a原创 2017-09-26 14:06:53 · 339 阅读 · 0 评论 -
CodeForces 19 B.Checkout Assistant(01背包)
Descriptionnnn件物品,第iii件物品收银时需耗费titit_i秒,价格为pipip_i,在收银过程中每秒可以偷一件没有结账的物品,问最少需要多少钱可以带走这些物品Input第一行一整数nnn,之后nnn行每行两个整数ti,pi(1≤n≤2000,0≤ti≤2000,1≤pi≤109)ti,pi(1≤n≤2000,0≤ti≤2000,1≤pi≤109)t_i,p_i(1\l...原创 2018-03-25 21:12:45 · 740 阅读 · 0 评论 -
CodeForces 95 E. Lucky Country(并查集+多重背包)
Description定义全部由4,74,74,7组成的数组为幸运数字,给出一张nnn个点mmm条边的无向图,要求增加最少的边使得该图中有一个点数为幸运数字的连通块Input第一行两个整数n,mn,mn,m表示点数和边数,之后mmm行每行输入一条无向边(1≤n,m≤105)(1≤n,m≤105)(1\le n,m\le 10^5)Output输出最少需要加边数,如果无解则输出−...原创 2018-07-16 13:29:17 · 447 阅读 · 0 评论 -
HDU 6360 Kaleidoscope(polya+多重背包)
Description用nnn种颜色给下图中的规则多面体染色,要求第iii种颜色出现的次数不少于cicic_i,旋转相同视作同一种方案,问染色方案数Input第一行一整数TTT表示用例组数,每组用例首先输入两个整数n,pn,pn,p表示颜色数量和模数,之后输入nnn个整数cicic_i表示对每种颜色使用数量的限制(1≤T≤1000,1≤n≤60,1≤p<230,0≤ci≤...原创 2018-09-06 08:21:50 · 380 阅读 · 1 评论 -
Newcoder 141 A.PACM Team(01背包)
Description有四种类型花费一种收益的nnn件物品,问在四种类型花费不超过各自上限的最大收益Input第一行一整数nnn表示物品数量,之后nnn行每行五个整数pi,ai,ci,mi,gipi,ai,ci,mi,gip_i,a_i,c_i,m_i,g_i分别表示该物品的四种花费和收益,最后输入四个整数P,A,C,MP,A,C,MP,A,C,M表示四种花费的上限(1≤n≤36,...原创 2018-09-15 22:04:18 · 264 阅读 · 0 评论 -
POJ 1384 && HDU 1114 Piggy-Bank(完全背包)
Description 给出小猪钱罐的重量和装满钱后的重量,然后给出几种钱币的价值与重量,求出能装满钱罐时的最大价值 Input 第一行为用例组数T,每组用例第一行为两个整数pre和last分别表示存钱罐初始质量和装满钱后的重量,第二行为钱币种类n,之后n行每行两个整数v和w分别表示该种钱币的价值和重量 Output 对于每组用例,如果存在可以装满存钱罐的方案则输出最大价值,如果不能装满原创 2015-09-06 08:28:02 · 634 阅读 · 0 评论 -
HDU 2602 Bone Collector(01背包)
Description 传说中有一位“白骨收藏者”,他有各种各样的白骨,每种白骨有一个体积和一个价值,现在他带着一个容量为v的背包出去旅行,路途中他又见到各种白骨,问他最后收获的白骨的最大价值 Input 第一行为用例组数T,每组用例第一行为两个整数n和v分别表示白骨个数以及背包容量,第二行n个整数分别表示每根白骨的价值,第三行n个整数表示每根白骨的体积 Output 对于每组用例,输出原创 2015-09-08 08:37:18 · 617 阅读 · 0 评论 -
HDU 2955 Robberies(01背包)
Description 一个劫匪要去抢劫n家银行,每家银行有一定的现金,每抢一家银行该劫匪有一定几率被警察抓住,但是当该劫匪被抓住的几率不大于p时他可以逃脱,问该劫匪在不被捕的情况下最多能抢到多少钱? Input 第一行为用例组数T,每组用例第一行为一个浮点数P和一个整数n分别表示被捕的几率上限以及该劫匪计划抢劫的银行数量,之后n行每个一个整数v和一个浮点数p表示该家银行的现金数以及该劫匪抢劫原创 2015-10-03 09:34:29 · 604 阅读 · 0 评论 -
HDU 2159 FATE(完全背包)
Description 还剩n点经验值升级,还剩m点耐久,最多只能打s个怪,怪有k种,第i种怪一只a[i]点经验,需要b[i]点耐久,每种怪数量无限,没有耐久就不能杀怪了,问是否可以升级,如果可以那最多还剩多少耐久 Input 多组用例,每组用例第一行四个整数n,m,k,s分别表示升级所需经验值,剩余的耐久度,怪的种类,杀怪数量上限,之后k行每行两个整数a[i]和b[i]表示第i种怪的经验值和原创 2017-07-14 08:54:15 · 636 阅读 · 0 评论 -
HDU 6082 度度熊与邪恶大魔王(01背包)
Description度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来。邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力。度度熊一共拥有m种攻击方式,第i种攻击方式,需要消耗k[i]的晶石,造成p[i]点伤害。当然,如果度度熊使用第i个技能打在第j个怪兽上面的话,会使得第j个怪兽的生命值减少p[i]-b[j],当然如果伤害小于防御,那么攻击就不会奏效。如果怪兽的生命值降原创 2017-08-17 10:02:06 · 391 阅读 · 0 评论 -
GYM 101102 A.Coins(01背包)
Description 给出n个元素a[i]和m个元素b[i],要求从两个集合中选出两个子集,s1和s2表示这两个子集的元素和,使得s1+s2=w,|s1-s2|<=k,问有多少种选取方法 Input 第一行一整数T表示用例组数,每组用例首先输入四个整数n,m,k,w,然后n个整数a[i],最后m个整数b[i] (1<=n,m<=150,0<=k<=w,1<=w<=15000,1<=a[i]原创 2017-03-16 15:25:30 · 573 阅读 · 0 评论 -
GYM 100827 H.Pushups(01背包)
Description 给出m种数字,每种数字无限,要求用这些数字构成一个序列,使得保证该序列的前缀和的和为n的前提下使得该序列的和最大 Input 第一行一整数T表示用例组数,每组用例首先输入两整数n和m分别表示要求构造序列的前缀和的和以及数字个数,之后m个整数s[i] (1<=T<=20,1<=n<=5000,1<=m<=10,1<=s[i]<=20) Output 如果存在合法解则输原创 2017-03-10 14:21:59 · 514 阅读 · 0 评论 -
POJ 2642 The Brick Stops Here(01背包)
Description 有n种砖块,每种砖块有一个体积c和价格p,先有c次询问,每次询问选取m种砖块使得其平均体积介于cmin和cmax之间,如果不存在合法方案则输出inpossible,存在则输出最小价格 Input 第一行为一整数n表示砖块数量,之后n行每行两个整数v和p分别表示该种砖块的体积和价格,然后是一整数c表示查询次数,之后c行每行三个整数m,cmin,cmax表示一次查询 (1原创 2016-02-12 15:44:40 · 648 阅读 · 0 评论 -
POJ 1837 Balance(01背包)
Description 有一个天平,两个臂上有钩子,臂长15,给出所有钩子的位置,给出每个钩码的重量(各不相同),求必须使用所有钩码的前提下,有多少种平衡方法 Input 第一行为两个整数n和m分别表示钩子个数和钩码个数(2Output 输出平衡方法种数 Sample Input 2 4 -2 3 3 4 5 8 Sample Output 2 Solution a[原创 2015-08-26 16:09:20 · 431 阅读 · 0 评论 -
HDU 3732 Ahui Writes Word(多重背包)
Description 小明要学习背单词,一共有n个单词,每个单词有一个难度c和价值v,问小明所被单词总难度不超过V的情况下能够得到的最大价值 Input 第一行为两个整数n和V分别表示单词数量和难度上限,之后n行每行一个字符串表示该单词,之后两个整数v和c表示该单词的价值和难度 (1≤n≤100000,1≤V≤10000,0 ≤v,c≤10) Output 输出在总难度不超过V的情况下原创 2016-01-01 22:09:22 · 584 阅读 · 0 评论 -
POJ 2923 Relocation(状压DP+01背包)
Description 已知n件货物的重量,先要用两个载重量分别为c1和c2的卡车装载这些货物,问最少需要装载几次 Input 第一行为一整数T表示用例组数,每组用例第一行为三个整数n,c1和c2分别表示货物数量以及两辆卡车的载重量,第二行n个整数表示这n件物品的重量 Output 对于每组用例,输出将这些货物装载完毕所需的最少装载次数,每组用例后跟一空行 Sample Input 2原创 2015-10-09 20:44:28 · 811 阅读 · 0 评论 -
POJ 2184 Cow Exhibition(01背包)
Description 有一些奶牛,他们有一定的s值和f值,这些值有正有负,最后让保证s的和为非负且f的和为非负的情况下,s+f的最大值 Input 第一行为奶牛数量n,之后n行每行两个整数表示对应奶牛的s和f值 Output 输出保证s和非负f和非负时的s+f的最大值 Sample Input 5 -5 7 8 -6 6 -3 2 1 -8 -5 Sample Outpu原创 2015-10-09 20:27:56 · 892 阅读 · 0 评论 -
POJ 1014 && HDU 1059 Dividing(完全背包)
Description 有分别价值为1,2,3,4,5,6的6种物品,输入6个数字,表示相应价值的物品的数量,问一下能不能将物品分成两份,使得两份的总价值相等 Input 多组输入,每组用例占一行包括六个整数表示这六种物品的数量,以0 0 0 0 0 0结束输入 Output 对于每组用例,输出是否能将这些物品分为价值相同的两份 Sample Input 1 0 1 2 0 0 1原创 2015-10-09 20:17:48 · 611 阅读 · 0 评论 -
HDU 2639 Bone Collector II(01背包-第K优决策)
Description 给出n件物品的价值和体积,问在总体积不超过v时的第k大价值 Input 第一行为用例组数T,每组用例第一行为三个整数n,v和k,第二行n个整数表示这n件物品的价值,第三行n个整数表示这n件物品的体积 Output 对于每组用例,输出总体积不超过v的最大价值 Sample Input 3 5 10 2 1 2 3 4 5 5 4 3 2 1 5 10 12原创 2015-10-09 18:53:45 · 948 阅读 · 0 评论 -
HDU 1171 Big Event in HDU(01背包)
Description 给出每个物体的价值和物体的数量,如何分使得A,B所得价值最接近并且A的价值不能小于B Input 多组用例,每组用例第一行为一个整数n表示物品种数,之后n行每行两个整数V和M分别表示物品价值和数量,以n=-1结束输入(0 < n,V < 50,0 < M <= 100) Output 对于每组用例,输出满足条件的A和B的值 Sample Input 2 10原创 2015-10-03 13:41:28 · 792 阅读 · 0 评论 -
Newcoder 132 C.简单瞎搞题(01背包+bitset)
Description一共有nnn个数,第 iii 个数是 xix_ixi ,xix_ixi 可以取 [li,ri][l_i , r_i][li,ri] 中任意的一个值。 设S=∑xi2S=\sum x_i^2S=∑xi2,求SSS种类数。Input第一行一个数nnn。然后 nnn 行,每行两个数表示 li,ril_i,r_ili,ri。(1≤n,li,ri≤100)(1\...原创 2018-10-01 17:08:05 · 447 阅读 · 0 评论