题目链接:https://www.rqnoj.cn/problem/329

题意:

  刘翔有n封信,每封信都有自己的欣赏价值value[i]、消耗时间time[i]、消耗体力h[i]、和得到的鼓舞w[i]。

  观看信件必须按照价值递增(大于)的顺序观看,不一定需要全看。

  可是,刘翔在伤病中,时间和体力分别为t,m,同时看完之后体力不能为0。

  问你受到的鼓舞最大为多少。

题解:

  这道题里value[i]真的没有用。。。

  

  表示状态:

    dp[i][j][k] = max encouraging

    i:考虑到第i封信

    j:花费的时间

    k:花费的体力

  找出答案:

    ans = max dp[i][j][k] (0<=j<=t, 0<=k<m)

  如何转移:

    dp[i][j][k] = max(dp[i-1][j][k], dp[i-1][j-c[i]][k-h[i]] + w[i]) (01背包)

  边界条件:

    set dp = 0

AC Code:

 // state expression:
// dp[i][j][k] = max encouraging
// i: ith letter was considered
// j: time cost
// k: hp cost
//
// find the answer:
// max dp[i][j][k] (0<=j<=t, 0<=k<m)
//
// transferring:
// dp[i][j][k] = max(dp[i-1][j][k], dp[i-1][j-c[i]][k-h[i]] + w[i])
//
// boundary:
// set dp = 0
#include <iostream>
#include <stdio.h>
#include <string.h>
#define MAX_N 105
#define MAX_T 105
#define MAX_H 105 using namespace std; int n,m,t;
int ans;
int w[MAX_N];
int c[MAX_N];
int h[MAX_N];
int dp[MAX_N][MAX_T][MAX_H]; void read()
{
cin>>n>>m>>t;
int v;
for(int i=;i<=n;i++)
{
cin>>v>>c[i]>>h[i]>>w[i];
}
} void solve()
{
memset(dp,,sizeof(dp));
ans=;
for(int i=;i<=n;i++)
{
for(int j=;j<=t;j++)
{
for(int k=;k<m;k++)
{
dp[i][j][k]=max(dp[i][j][k],dp[i-][j][k]);
if(j-c[i]>= && k-h[i]>=)
{
dp[i][j][k]=max(dp[i][j][k],dp[i-][j-c[i]][k-h[i]]+w[i]);
}
ans=max(ans,dp[i][j][k]);
}
}
}
} void print()
{
cout<<ans<<endl;
} int main()
{
read();
solve();
print();
}

RQNOJ 329 刘翔!加油!:01背包的更多相关文章

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

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

  2. hdu3448 01背包+dfs

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=3448 Description 0/1 bag problem should sound f ...

  3. 背包问题(01背包,完全背包,多重背包(朴素算法&&二进制优化))

    写在前面:我是一只蒟蒻~~~ 今天我们要讲讲动态规划中~~最最最最最~~~~简单~~的背包问题 1. 首先,我们先介绍一下  01背包 大家先看一下这道01背包的问题  题目  有m件物品和一个容量为 ...

  4. HDU 2191(多重背包转换为01背包来做)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 Time Limit: 1000/1000 ...

  5. UVALive 4870 Roller Coaster --01背包

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

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

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

  7. Codeforces 2016 ACM Amman Collegiate Programming Contest A. Coins(动态规划/01背包变形)

    传送门 Description Hasan and Bahosain want to buy a new video game, they want to share the expenses. Ha ...

  8. 51nod1085(01背包)

    题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1085 题意: 中文题诶~ 思路: 01背包模板题. 用dp[ ...

  9. *HDU3339 最短路+01背包

    In Action Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

随机推荐

  1. GUID概念

     GUID概念 GUID: 即Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally Unique IDentifier) . GUID是 ...

  2. vue组件class绑定

    当在一个自定义组件上使用 class 属性时,这些类将被添加到该组件的根元素上面.这个元素上已经存在的类不会被覆盖. 例如,如果你声明了这个组件: Vue.component('my-componen ...

  3. 分析cocos2d-x的lua项目中的工具方法

    在创建完cocos2d-x的lua项目后.打开项目的Resources中的extern.lua文件.里面有两个用于面向对象的方法.一个是用于克隆,一个是用于继承. 代码分析例如以下 --克隆一个对象 ...

  4. 在Ubuntu 14.04 64bit中永久添加DNS的方法

    DNS信息是由/etc/resolv.conf提供的,它是每次开机时,由/sbin/resolvconf生成的/etc/resolv.conf是/run/resolvconf/resolv.conf的 ...

  5. Java 使用StringBuffer注意

    Stringbuffer使用注意   问题背景: 模拟客户端使用Socket请求服务器核心系统,核心系统正常响应,内容较大,近2715KB,大于2.6M多. 使用指定编码GBK来接收响应内容到过程中没 ...

  6. 我是这样使用template.js来异步渲染数据的demo

    直接来代码吧! <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <t ...

  7. tf树

    tf变换(1)   TF库的目的是实现系统中任一个点在所有坐标系之间的坐标变换,也就是说,只要给定一个坐标系下的一个点的坐标,就能获得这个点在其他坐标系的坐标. 使用tf功能包,a. 监听tf变换:  ...

  8. Django之tag的使用

    settings.py: #安装 pip install django-taggit INSTALLED_APPS = [ 'myblog', 'taggit', 'django.contrib.ad ...

  9. 彻底隐藏Nginx版本号的安全性与方法

    Nginx默认是显示版本号的,如: [root@bkjz ~]# curl -I www.nginx.orgHTTP/1.1 200 OKServer: nginx/0.8.44Date: Tue, ...

  10. WinForm程序打包工具InnoSetup使用说明图文教程

    WinForm程序打包工具InnoSetup使用说明图文教程 WinForm程序开发测试好了,如果将Debug/Release里面的文件发给客户使用,会让客户觉得你不够专业,但是使用VS自带的打包工具 ...