Codevs 1444 “破锣摇滚”乐队

1444 “破锣摇滚”乐队

题目描述 Description

你刚刚继承了流行的“破锣摇滚”乐队录制的尚未发表的N(1 <= N <= 20)首歌的版权。你打算从中精选一些歌曲,发行M(1 <= M <= 20)张CD。每一张CD最多可以容纳T(1 <= T <= 20)分钟的音乐,一首歌不能分装在两张CD中。

不巧你是一位古典音乐迷,不懂如何判定这些歌的艺术价值。于是你决定根据以下标准进行选择:

1.歌曲必须按照创作的时间顺序在CD盘上出现。

2.选中的歌曲数目尽可能地多。

输入描述 Input Description

第一行: 三个整数:N, T, M.

第二行: N个整数,分别表示每首歌的长度,按创作时间顺序排列。

输出描述 Output Description

一个整数,表示可以装进M张CD盘的乐曲的最大数目。

样例输入 Sample Input

4 5 2

4 3 4 2

样例输出 Sample Output

3

/*
  变形的背包问题
  dp[j][k]表示把当前的歌曲装到第j个CD,且已经装了k个容量时,能装的最多的歌曲数
  当装第到第j个CD中时,dp[j][k]=dp[j][k-w[i]]+1;
  当第j个装不开,要装到第j-1个中,即dp[j][k]=dp[j-1][m]+1。
*/
#include<iostream>
#include<cstdio>
using namespace std;
#define maxm 30
#define maxt 30
int n,m,t,dp[maxm][maxt],w[maxm];
int main(){
    scanf("%d%d%d",&n,&m,&t);
    for(int i=1;i<=n;i++)scanf("%d",&w[i]);
    for(int i=1;i<=n;i++)
        for(int j=t;j>=1;j--)
            for(int k=m;k>=w[i];k--){
                dp[j][k]=max(dp[j][k],dp[j][k-w[i]]+1);
                dp[j][k]=max(dp[j][k],dp[j-1][m]+1);
            }
    printf("%d",dp[t][m]);
}
时间: 2024-10-08 20:50:29

Codevs 1444 “破锣摇滚”乐队的相关文章

“破锣摇滚”乐队(codevs 1444)

题目描述 Description 你刚刚继承了流行的“破锣摇滚”乐队录制的尚未发表的N(1 <= N <= 20)首歌的版权.你打算从中精选一些歌曲,发行M(1 <= M <= 20)张CD.每一张CD最多可以容纳T(1 <= T <= 20)分钟的音乐,一首歌不能分装在两张CD中. 不巧你是一位古典音乐迷,不懂如何判定这些歌的艺术价值.于是你决定根据以下标准进行选择: 1.歌曲必须按照创作的时间顺序在CD盘上出现. 2.选中的歌曲数目尽可能地多. 输入描述 Input

洛谷P2736 “破锣摇滚”乐队 Raucous Rockers

P2736 “破锣摇滚”乐队 Raucous Rockers 21通过 52提交 题目提供者该用户不存在 标签USACO 难度普及+/提高 提交  讨论  题解 最新讨论 暂时没有讨论 题目描述 你刚刚继承了流行的“破锣摇滚”乐队录制的尚未发表的N(1 <= N <= 20)首歌的版权.你打算从中精选一些歌曲,发行M(1 <= M <= 20)张CD.每一张CD最多可以容纳T(1 <= T <= 20)分钟的音乐,一首歌不能分装在两张CD中. 不巧你是一位古典音乐迷,不

[luoguP2736] “破锣摇滚”乐队 Raucous Rockers(DP)

传送门 f[i][j]表示前i首歌放到前j个盘里最多能放多首 ntr[i][j]表示i~j中最多能放进一张盘中多少首歌 ntr数组可以贪心预处理出来. #include <cstdio> #include <iostream> #include <algorithm> #define N 21 #define max(x, y) ((x) > (y) ? (x) : (y)) int n, t, m; int a[N], b[N], ntr[N][N], f[N]

经典的动态规划

有一个动态规划100例...看到机房里shenben的复习资料...加上垃圾的dp....整理一下. 一.资源分配问题 tyvj 1203 机器分配 题目大意:有m个设备,n个公司,v[i][j]表示第i个公司分j个设备的贡献值.怎样分配使贡献值的和最大? 状态:前i个公司分j个设备. f[i][j]表示前i个公司分j个设备,枚举第i个公司分k个设备. 状态转移方程:f[i][j]=max{f[i-1][j-k]+v[i][k]} 这个还挺简单的. 洛谷P2736 "破锣摇滚"乐队 R

常见算法和例题

第3章  算法与程序设计模块 3.1  算    法 算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作. 常用的算法:列举了穷举搜索.递归.回溯.递推.模拟.分治.贪心.深度优先搜索.广度优先搜索等几种较为常用的算法,没有做过多的描述,一旦给出具体描述,容易使内容加深,产生严重学科取向的引导,符合教育部普通高中课程方案的特点,对于这些必需的方法和思想,关键不在于学生能不能,而在于教师是否想到,是否有过关注,引发学生对系统方法和思想的思考,重视建立编程思想,

转载:动态规划

来源:http://blog.sina.com.cn/s/blog_7727572f01011461.html 动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法.20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(multistep decision process)的优化问题时,提出了著名的最优化原理(principle of optimality),把多阶段过程转化为一系列单阶段问

DP小题集

P2736 "破锣摇滚"乐队 Raucous Rockers 你刚刚继承了流行的"破锣摇滚"乐队录制的尚未发表的N(1 <= N <= 20)首歌的版权.你打算从中精选一些歌曲,发行M(1 <= M <= 20)张CD.每一张CD最多可以容纳T(1 <= T <= 20)分钟的音乐,一首歌不能分装在两张CD中.CD数量可以用完,也可以不用完 不巧你是一位古典音乐迷,不懂如何判定这些歌的艺术价值.于是你决定根据以下标准进行选择: 1

姜文这副药引

姜文这副药引 猛的号 2018-07-22 11:36收藏281评论28娱乐淘金 虎嗅注:据说,<邪不压正>姜文打磨了四年,他的电影镜头背后有很多故事,总是有“隐喻”的.你“看得懂”也好,“看不懂”也好,总之,那些时候的北京,和生活在北京的那些人的故事,就在这里了. 本文转自公众号“猛的号”(ID:mg221x),作者:猛哥. 1 时维1894年. 怒海翻腾,残阳如血.甲午海战,清王朝惨败,洋务运动走向穷途末路. 当李鸿章与伊藤博文讨价还价,试图签订一份不那么丧权辱国的条约时,在山西省五台县金

aaudio

OpenSL ES 从Android 2.3(Gingerbread)开始的设备支持OpenSL.然而,从Android 4.2(或4.3?)开始,用于OpenSL(高性能音频)的快速混合器可用,并且并不是所有设备本地支持的. 这是什么意思?基于我的观察,当不使用快速混合器时,Java AudioTrack 比OpenSL 更快(具有较低的延迟). 当使用快速混频器时,音频延迟实际上是好的和低的.为了实现这一点,您的设备必须支持快速混音器,并且配置参数应该匹配. 另一个需要考虑的问题是GearV