题目http://www.rqnoj.cn/problem/160

分析:这是一个01背包问题,对于每一道题目,都有两个选择"做"或者"不做"。
但是唯一不同的是如果做,那么又有两种选择。因此多加了判断条件。

二维的动态转移方程是:
  dp[i,j]=max{  dp[i-1,j],  dp[i-1,j-c1[i]]+w1[i], dp[i-1,j-c2[i]]+w2[i] }
将二维降维到一维:
      dp[j]=max{  dp[j],   dp[j-c1[i]]+w1[i], dp[j-c2[i]]+w2[i] }

​#include<stdio.h>
#include<string.h>

const int INF=0XFFFFFF;
int dp[1080010],T;

int getMax(int a,int b)
{
  return a>b?a:b;
}

void ZeroOnePack(int c1,int t1,int c2,int t2)
{
  for (int i=T;i>=0;i--)
  {
    if(i>=t1) dp[i]=getMax(dp[i],dp[i-t1]+c1);
    if(i>=t2) dp[i]=getMax(dp[i],dp[i-t2]+c2);
  }
}

int main()
{
  int N,w1[32],t1[32],w2[32],t2[32];
  while (scanf("%d%d",&N,&T)!=EOF)
  {
    for(int i=1;i<=N;i++)
      scanf("%d%d%d%d",&w1[i],&t1[i],&w2[i],&t2[i]);

    memset(dp,0,sizeof(dp));

    for(int i=1;i<=N;i++)
      ZeroOnePack(w1[i],t1[i],w2[i],t2[i]);

    printf("%d\n",dp[T]);
  }
  return 0;
}




RQNOJ--160 竞赛真理(01背包)的更多相关文章

  1. RQNOJ 329 刘翔!加油!:01背包

    题目链接:https://www.rqnoj.cn/problem/329 题意: 刘翔有n封信,每封信都有自己的欣赏价值value[i].消耗时间time[i].消耗体力h[i].和得到的鼓舞w[i ...

  2. RQNOJ 202 奥运火炬登珠峰:01背包

    题目链接:https://www.rqnoj.cn/problem/202 题意: 登珠峰需要携带a(L)O2和t(L)N2. 有n个气缸可供选择.其中第i个气缸能装下a[i](L)O2和t[i](L ...

  3. 第十四届华中科技大学程序设计竞赛决赛同步赛 F Beautiful Land(01背包,背包体积超大时)

    链接:https://www.nowcoder.com/acm/contest/119/F来源:牛客网 Beautiful Land 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1 ...

  4. FOJProblem 2214 Knapsack problem(01背包+变性思维)

    http://acm.fzu.edu.cn/problem.php?pid=2214 Accept: 4    Submit: 6Time Limit: 3000 mSec    Memory Lim ...

  5. [Swust OJ 465]--吴奶奶买鱼(0-1背包+dfs)

    题目链接:http://acm.swust.edu.cn/problem/465/ 还有一道题只是描述不一样,方法一模一样(http://acm.swust.edu.cn/problem/644/) ...

  6. POJ 2151 Check the difficulty of problems 概率dp+01背包

    题目链接: http://poj.org/problem?id=2151 Check the difficulty of problems Time Limit: 2000MSMemory Limit ...

  7. FZU 2214 ——Knapsack problem——————【01背包的超大背包】

    2214 Knapsack problem Accept: 6    Submit: 9Time Limit: 3000 mSec    Memory Limit : 32768 KB  Proble ...

  8. 【洛谷P2722 USACO】 总分 01背包模板

    P2722 总分 Score Inflation 题目背景 学生在我们USACO的竞赛中的得分越多我们越高兴. 我们试着设计我们的竞赛以便人们能尽可能的多得分,这需要你的帮助 题目描述 我们可以从几个 ...

  9. UVALive 4870 Roller Coaster --01背包

    题意:过山车有n个区域,一个人有两个值F,D,在每个区域有两种选择: 1.睁眼: F += f[i], D += d[i] 2.闭眼: F = F ,     D -= K 问在D小于等于一定限度的时 ...

  10. POJ1112 Team Them Up![二分图染色 补图 01背包]

    Team Them Up! Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7608   Accepted: 2041   S ...

随机推荐

  1. java OOP第03章_继承、抽象类和抽象方法

    一. 为什么需要继承: 若多个类中都需要一些属性和方法,那么就可以将属性和方法抽取到一个父类中,需要的子类可以通过extends关键字去继承这个父类后拥有相应的属性和方法. 类.数组.方法----引用 ...

  2. flutter setInitialRoute: 不生效

    概述 需要实现native跳转到flutter 指定的路由页面. iOS 工程中发现 FlutterViewController  setInitialRouter 无效,在我的需求里面是: 在iOS ...

  3. C puts,gets

    1.  char *gets(char *s); 从输入缓冲区中读取一个字符串存储到字符指针变量 str 所指向的内存空间 注意事项:空间不检查合理:要使用功能必须准备足够大的空间: #include ...

  4. C 自己实现strcpy,strcmp,strlen,strcat等函数

    // mystrlen() 测试字符长度方法 int mystrlen(char *str) { int cnt = 0; char *p= str; while(*p++ != '\0') { cn ...

  5. arc098E Range Minimum Queries

    题意:给你一个n个数的数组,每次能够选取连续的长度为K的子序列,取出其中任意一个最小元素. 一共操作Q次.问取出的元素中Max-Min最小是多少? 标程: #include<bits/stdc+ ...

  6. 组合数学——cf1065E

    从两端到中间分段,然后累乘即可 #include<bits/stdc++.h> using namespace std; #define mod 998244353 #define max ...

  7. window 下kafka 配置测试

    1.准备工作 1.1 java环境 1.2 下载并解压到D:\zookeeper-3.4.13  下载并解压到 D:\kafka_2.12-2.1.0 2.安装zookeeper .kafka 我安装 ...

  8. (转)Android 升级 ADT 之后报错之一 case语句 .

    转:http://blog.csdn.net/wchinaw/article/details/7325641 下面文章大意是指:在一般的Android项目中,R类的常量都是用final定义的,但ADT ...

  9. yolo自己的数据集中LabelImg的安装出现No module named 'libs.resources'错误

    以下是完整的安装过程,如果出现No module named 'libs.resources',直接看第四点. 1.安装PyQt,在官网下载吧,否则pip install 要等好久 2.安装PyQtT ...

  10. csdn的富文本编辑器(html)格式的文章,添加的代码格式粘贴到项目中总是不对,我这里是maven的pom文件。

    在用富文本编辑器(html)格式编辑的时候,总是出现将pom文件的配置从csdn粘贴到项目中发现很多红,是因为自己在设置的时候有问题. 因为我们的是pom.xml,这里原来设置的java呀或者js为了 ...