题目链接: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();
}

最新文章

  1. JavaScript单元测试框架JsUnit基本介绍和使用
  2. PHP-Redis扩展使用手册(二)
  3. 删除Json中的不需要的键值
  4. Windows Server 2016软件定义存储:Storage Spaces Direct的关键特性
  5. java多线程之队列
  6. activiti参考5-任务TASK
  7. [js] 小谈 export (没总结完)
  8. thinkphp实现文件的下载
  9. STL next_permutation 算法原理和实现
  10. hdu5521(Meeting)spfa 层次网络最短路
  11. 使用pytorch构建神经网络的流程以及一些问题
  12. STM32输入捕获模式设置并用DMA接收数据
  13. citus 多租户应用开发(来自官方文档)
  14. golang 如何判断变量的类型
  15. BZOJ3156 防御准备(动态规划+斜率优化)
  16. ASP.NET 构建高性能网站 第6篇
  17. 子墨庖丁Android的ActionBar源代码分析 (一)实例化
  18. JS事件监听手机屏幕触摸事件 Touch
  19. Flexbox兼容性
  20. phpMyAdmin的安装配置

热门文章

  1. centos下lvs配置
  2. C#托付之愚见
  3. apue学习笔记(第十四章 高级I/O)
  4. SQLSERVER 2008 链接 到 ORACLE 11
  5. Maven上传本地jar
  6. 【Java】事件驱动模型和观察者模式
  7. HDFS源码分析之编辑日志编辑相关双缓冲区EditsDoubleBuffer
  8. zabbix-agent active 配置自动探测
  9. linux查看磁盘挂载的三种方法
  10. JavaScript之this的工作原理