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

题意:

  叔叔要陪多多看动画片。

  

  有n张DVD可以买,第i张碟的打分为w[i],播放时间为t[i]。

  爷爷规定他们只能在一定的时间段L看完。

  

  多多让叔叔惯的特别任性,只要他看到有几张就一定会看完。

  买碟的地方只买给顾客m(m<n)张碟,不会多也不会少。

  

  在N张碟中只买M张而且在规定时间看完,问你最高的总价值。

题解:

  表示状态:

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

    i:考虑到第i个DVD

    j:已经选了j张碟

    k:当前的总播放时间

  找出答案:

    max dp[n][m][0 to L]

    所有碟都考虑完,正好选了m张。

  如何转移:

    now: dp[i][j][k]

    dp[i+1][j][k] = max dp[i][j][k]          (不选)

    dp[i+1][j+1][k+t[i]] = max dp[i][j][k] + w[i]  (选)

  边界条件:

    dp[0][0][0] = 0

    others = -1

AC Code:

 // state expression:
// dp[i][j][k] = max value
// i: considering ith DVD
// j: j DVDs is selected
// k: cost time
//
// find the answer:
// max dp[n][m][0 to l]
//
// transferring:
// now: dp[i][j][k]
// dp[i+1][j][k] = max dp[i][j][k]
// dp[i+1][j+1][k+t[i]] = max dp[i][j][k] + w[i]
//
// boundary:
// dp[0][0][0] = 0
// others = -1
#include <iostream>
#include <stdio.h>
#include <string.h>
#define MAX_N 105
#define MAX_M 105
#define MAX_L 1005 using namespace std; int n,m,l;
int ans;
int t[MAX_N];
int w[MAX_N];
int dp[MAX_N][MAX_M][MAX_L]; void read()
{
cin>>n>>m>>l;
for(int i=;i<n;i++)
{
cin>>t[i]>>w[i];
}
} void solve()
{
memset(dp,-,sizeof(dp));
dp[][][]=;
for(int i=;i<n;i++)
{
for(int j=;j<=m;j++)
{
for(int k=;k<=l;k++)
{
if(dp[i][j][k]!=-)
{
dp[i+][j][k]=max(dp[i+][j][k],dp[i][j][k]);
if(j+<=m && k+t[i]<=l)
{
dp[i+][j+][k+t[i]]=max(dp[i+][j+][k+t[i]],dp[i][j][k]+w[i]);
}
}
}
}
}
ans=;
for(int i=;i<=l;i++)
{
ans=max(ans,dp[n][m][i]);
}
} void print()
{
cout<<ans<<endl;
} int main()
{
read();
solve();
print();
}

RQNOJ 95 多多看DVD(加强版):01背包的更多相关文章

  1. rqnoj PID95:多多看DVD(加强版)

    题目描述 多多进幼儿园了,今天报名了.只有今晚可以好好放松一下了(以后上了学后会很忙).她的叔叔决定给他买一些动画片DVD晚上看.可是爷爷规定他们只能在一定的时间段L看完.(因为叔叔还要搞NOIP不能 ...

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

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

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

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

  4. 紫书 例题 9-5 UVa 12563 ( 01背包变形)

    总的来说就是价值为1,时间因物品而变,同时注意要刚好取到的01背包 (1)时间方面.按照题意,每首歌的时间最多为t + w - 1,这里要注意. 同时记得最后要加入时间为678的一首歌曲 (2)这里因 ...

  5. HDU2191--多重背包(二进制分解+01背包)

    悼念512汶川大地震遇难同胞--珍惜现在,感恩生活 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Jav ...

  6. HDU 2955 【01背包/小数/概率DP】

    Robberies Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  7. UVALive 4870 Roller Coaster --01背包

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

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

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

  9. 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 ...

随机推荐

  1. php猴子吃桃

    <?php header("content-type:text/html;charset=utf-8"); /* 有一堆桃子,猴子第一天吃了其中的一半,并再多吃了一个! 以后 ...

  2. servlet实现文件下载所需步骤及说明

      servlet实现文件下载所需步骤及说明 CreateTime--2017年9月1日15:46:22 Author:Marydon 参考链接:http://blog.sina.com.cn/s/b ...

  3. Asp 解析 XML并分页显示

    Asp 解析 XML并分页显示 Asp 解析 XML并分页显示,演示样例源代码例如以下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr ...

  4. 编译-O 选项对性能提升作用

    GCC -O 选项 这个选项控制所有的优化等级.使用优化选项会使编译过程耗费更多的时间,并且占用更多的内存,尤其是在提高优化等级的时候. -O设置一共有五种:-O0.-O1.-O2.-O3和-Os. ...

  5. HDU - 3874 Necklace (线段树 + 离线处理)

    欢迎參加--每周六晚的BestCoder(有米! ) Necklace Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 65536/3 ...

  6. g2o 初始化

    typedef g2o::BlockSolver< g2o::BlockSolverTraits<,> > Block; // pose 维度为 6, landmark 维度为 ...

  7. MySql(六):影响 MySQL Server 性能的相关因素

    MySQL 最多的使用场景是WEB 应用,那么我们就以一个WEB 应用系统为例,逐个分析其系统构成,进行经验总结,分析出数据库应用系统中各个环境对性能的影响. 一.商业需求对性能的影响 这里我们就拿一 ...

  8. Windows 10 1703创意者更新官方ISO镜像大全

    2017年04月07日 20:00 19867 次阅读 稿源:快科技 12 条评论 Windows 10 Creators Update创意者更新正式版已经发布,目前只能通过易生.MCT工具或者ISO ...

  9. 查看mysql 的存储过程定义

    查询数据库中的存储过程 方法一: select `name` from mysql.proc where db = 'your_db_name' and `type` = 'PROCEDURE' 方法 ...

  10. K均值算法总结

    这几天在一个项目上需要用到K均值聚类算法,以前都是直接利用百度老师copy一个Kmeans算法代码,这次想自己利用已知的算法思想编写一下,编写才知道,虽然熟悉了算法思想,真正实现时,还是遇到不少bug ...