//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])
 //如果我们省略一维,这需要先更新j,再更新j-weight[i],当weight[i]为正时,我们要先更新大的。。。
 #include <cstdio>
 #include <cstring>
 #include <iostream>
 #include <queue>
 #include <cmath>
 #include <algorithm>
 using namespace std;
 /**
   * This is a documentation comment block
   * 如果有一天你坚持不下去了,就想想你为什么走到这儿!
   * @authr songt
   */
 ;
 ;
 int value[imax_n];
 int weight[imax_n];
 ];
 int n;
 int max(int a,int b)
 {
     return a>b?a:b;
 }
 void Dp()
 {
     ;i<=n*;i++) dp[i]=-inf;
     dp[n*]=;
     ;i<=n;i++)
     {
          && weight[i]<=) continue;
         )
         {
             ;j>=weight[i];j--)
             if (dp[j-weight[i]]>-inf)
             dp[j]=max(dp[j],dp[j-weight[i]]+value[i]);
         }
         else
         {
             ;j<=n*+weight[i];j++)
             if (dp[j-weight[i]]>-inf)
             dp[j]=max(dp[j],dp[j-weight[i]]+value[i]);
         }
     }
     ;
     ;i<=n*;i++)
     )
     ans=max(ans,dp[i]+i-n*);
     printf("%d\n",ans);
 }
 int main()
 {
     while (scanf("%d",&n)!=EOF)
     {
         ;i<=n;i++)
         scanf("%d%d",&weight[i],&value[i]);
         Dp();
     }
     ;
 }

poj2184 背包的更多相关文章

  1. POJ-2184 Cow Exhibition---01背包变形(负数偏移)

    题目链接: https://vjudge.net/problem/POJ-2184 题目大意: 给出num(num<=100)头奶牛的S和F值(-1000<=S,F<=1000),要 ...

  2. [poj2184]我是来水一下背包的

    http://poj.org/problem?id=2184 题意:01背包的变种,就是说有2组值(有负的),你要取一些物品是2阻值的和非负且最大 分析: 1.对于负的很好处理,可以把他们都加上一个数 ...

  3. Cow Exhibition [POJ2184] [DP] [背包的负数处理]

    题意: 有很多羊,每只羊有一个幽默度和智商,要选出一些羊,智商加幽默度总和最大,其中智商总和和幽默度总和都不能是负数. 样例输入: 5 -5 7 8 -6 6 -3 2 1 -8 -5 样例输出: 8 ...

  4. poj2184 Cow Exhibition【01背包】+【负数处理】+(求两个变量的和最大)

    题目链接:https://vjudge.net/contest/103424#problem/G 题目大意: 给出N头牛,每头牛都有智力值和幽默感,然后,这个题目最奇葩的地方是,它们居然可以是负数!! ...

  5. POJ-2184 Cow Exhibition(01背包变形)

    Cow Exhibition Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10949 Accepted: 4344 Descr ...

  6. poj2184 Cow Exhibition(p-01背包的灵活运用)

    转载请注明出处:http://blog.csdn.net/u012860063 题目链接:id=2184">http://poj.org/problem?id=2184 Descrip ...

  7. POJ2184(01背包变形)

    Cow Exhibition Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11092   Accepted: 4404 D ...

  8. POJ2184 Cow Exhibition 背包

    题目大意:已知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 ...

  9. poj2184 01背包变形,价值为可为负数

    题目链接:http://poj.org/problem?id=2184 题意:每行给出si和fi,代表牛的两个属性,然后要求选出几头牛,满足S与F都不能为负数的条件下,使S与F的和最大. tips:动 ...

随机推荐

  1. SQL Server 2012清除连接过的服务器名称历史

    退出客户端后 SQL Server 2012: 删除这两个地方!请提前备份! X:\Users\XXX\AppData\Roaming\Microsoft\SQL Server Management ...

  2. GetMemory

    在函数中动态申请内存(虚拟内存,堆),利用指针返回值指向申请的内存.

  3. php 正则匹配中文

    在javascript中,要判断字符串是中文是很简单的.比如:var str = "php编程";if (/^[\u4e00-\u9fa5]+$/.test(str)) {aler ...

  4. uva514(trail)(模拟栈)

    //#define LOCAL #include<cstdio> #include<cstring> #include<cstdlib> #include<s ...

  5. Extjs 视频教程

    ---恢复内容开始--- 网易云课堂 <尚学堂_Ext视频教程> login.html <html> <head> <meta http-equiv=&quo ...

  6. ocument的createDocumentFragment()方法

    在<javascript高级程序设计>一书的6.3.5:创建和操作节点一节中,介绍了几种动态创建html节点的方法,其中有以下几种常见方法: · crateAttribute(name): ...

  7. 使用Yeoman,Grunt和Bower开发AngularJS(译)

    使用Yeoman产生AngularJS的主要骨架 使用Grunt加速开发和帮助执行 使用Bower来加入第三方插件和框架——third party plugins/frameworks 一.准备工作 ...

  8. fr

    8.3 credit sales(bad debt , ar) method1:direct write off method2:allowance method for bad debt allow ...

  9. Entity Framework - 理清关系 - 基于外键关联的单向一对一关系

      注:本文针对的是 Entity Framework Code First 场景. 之前写过三篇文章试图理清Entity Framework中的一对一关系(单相思(单向一对一), 两情相悦(双向一对 ...

  10. Maven 系列 一 :Maven 快速入门及简单使用【转】

    开发环境 MyEclipse 2014 JDK 1.8 Maven 3.2.1 1.什么是Maven? Maven是一个项目管理工具,主要用于项目构建,依赖管理,项目信息管理. 2.下载及安装 下载最 ...