poj2184 背包】的更多相关文章

//Accepted 1492 KB 110 ms //背包 //把si看成weight,Fi看成value,这可以表示成当dp[j]=max(dp[j-weight[i]]+value[i]) //考虑到si可能为负,需要整段区间的平移 //背包过程中,根据weight的正负,我们需要考虑dp的顺序,如果weight为正,这j从大到小 //如果weight为负,则要从小到大,这是根据dp[i][j]=max(dp[i][j],dp[i-1][j-weight[i]]+value[i]) //如…
题目链接: https://vjudge.net/problem/POJ-2184 题目大意: 给出num(num<=100)头奶牛的S和F值(-1000<=S,F<=1000),要求在这几头奶牛中选出若干头,使得在其总S值TS和总F值TF均不为负的前提下,求最大的TS+TF值 思路: 可以把S当体积,F当价值做01背包.但是注意是S可为负,所以整体加100000,然后要注意DP顺序,S为负是要顺序,为正时逆序. 还有就是注意DP时的范围,凡是可能影响的都要包括. //#include&…
http://poj.org/problem?id=2184 题意:01背包的变种,就是说有2组值(有负的),你要取一些物品是2阻值的和非负且最大 分析: 1.对于负的很好处理,可以把他们都加上一个数使其变成正数 2.对于两个变量可以控制一个变量,求另一个变量的最大值,那么接下来的问题就是处理“体积恰好为V的01背包”问题了(和普通的不同哦……普通的不一定装满的) 以前处理恰好体积为V的01背包都是开数组染色刷一遍的,原来有更好的方法,就是初始值是f[0]=0,f[1..V]=-inf,那么转移…
题意: 有很多羊,每只羊有一个幽默度和智商,要选出一些羊,智商加幽默度总和最大,其中智商总和和幽默度总和都不能是负数. 样例输入: 5 -5 7 8 -6 6 -3 2 1 -8 -5 样例输出: 8 分析: 这很像一个01背包题,但是有两个价值,却没有重量 我们就把其中一个看成重量,另一个看成价值 答案就是max(i+dp[i]) 那如何保证数据大于0呢? 我们可以把价值总体向右移100000个单位,然后设原点O为100000 之后就可以进行dp了 转移方程仍是:dp[j]=dp[j-w[i]…
题目链接:https://vjudge.net/contest/103424#problem/G 题目大意: 给出N头牛,每头牛都有智力值和幽默感,然后,这个题目最奇葩的地方是,它们居然可以是负数!!现在叫你求出其中的牛中,智力值总数和幽默感总数加起来最大的值,当然,智力值的总数必须大于等于零,幽默感总数也是. 解题思路: 转载于>>>大牛博客 对于每头牛,我们有两种选择,要么选,要么不选.看到这,就会觉得跟01背包很像,但是有 2 个变量来描述此状态的特征,智力,幽默感,并且他们可能是…
Cow Exhibition Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10949 Accepted: 4344 Description "Fat and docile, big and dumb, they look so stupid, they aren't much fun-" - Cows with Guns by Dana Lyons The cows want to prove to the pu…
转载请注明出处:http://blog.csdn.net/u012860063 题目链接:id=2184">http://poj.org/problem?id=2184 Description "Fat and docile, big and dumb, they look so stupid, they aren't much  fun..."  - Cows with Guns by Dana Lyons  The cows want to prove to the…
Cow Exhibition Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11092   Accepted: 4404 Description "Fat and docile, big and dumb, they look so stupid, they aren't much fun..." - Cows with Guns by Dana Lyons The cows want to prove to…
题目大意:已知c[i]...c[n]及f[i]...f[n],现要选出一些i,使得当sum{c[i]}和sum{f[i]}均非负时,sum(c[i]+f[i])的最大值. 以sum(c[i])(c[i]>=0)作为背包容量totV,i当作物体,c[i]当作物体体积,f[i]当作物体重量,01背包后,求max{j+DP[j]} (非负)即可. 注意: 这里物体体积存在负数,所以循环j时起始条件不能为j=0!而应当在for下面加if,判断子问题在minJ~maxJ范围之内. 初值不是DP[最左端点]…
题目链接:http://poj.org/problem?id=2184 题意:每行给出si和fi,代表牛的两个属性,然后要求选出几头牛,满足S与F都不能为负数的条件下,使S与F的和最大. tips:动态规划中状态维和值是可以相互转化的.状态维过多,效率低的时候,可以把将其转化为数组值:同理,数组值不唯一无法规划时,可以增加状态维使状态更详细. 这道题有两个值,把其中一个值转换为状态维.注意价值和体积都可以为负数的时候是怎么求. 代码: #include<iostream> #include&l…