一个简单的0-1背包,背包容量为t-1,每个物品价值为1,代价为t[i]。背包容量为t-1而不是t的原因是留1s唱《劲歌金曲》。

AC代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=180*50+678+5;
struct node{
	int len,tim;
	node(){
	}
	node(int l,int t):len(l),tim(t){
	}
}dp[55][maxn];

int a[55];
int n,t;
int main(){
	int T,kase=0;
	scanf("%d",&T);
	while(T--){
		scanf("%d%d",&n,&t);
		for(int i=1;i<=n;++i)
			scanf("%d",&a[i]);
		memset(dp[0],0,sizeof(dp[0]));
		for(int i=1;i<=n;++i)
		for(int j=0;j<t;++j){
			if(i==1) dp[i][j]=node(0,0);
			else dp[i][j]=dp[i-1][j];
			if(j>=a[i]){
				if(dp[i-1][j-a[i]].len+1>dp[i][j].len) {
					dp[i][j].len=dp[i-1][j-a[i]].len+1;
					dp[i][j].tim=dp[i-1][j-a[i]].tim+a[i];
				}
				else if(dp[i-1][j-a[i]].len+1==dp[i][j].len){
					dp[i][j].tim=max(dp[i-1][j-a[i]].tim+a[i],dp[i][j].tim);
				}
			}

		}
		printf("Case %d: ",++kase);
		printf("%d %d\n",dp[n][t-1].len+1,dp[n][t-1].tim+678);
	}
	return 0;
}

可以用滚动数组优化内存。

可能我的代码思路不是很简洁明了,附上汝佳大哥的代码汝佳大哥代码

如有不当之处欢迎指出。

uva12563的更多相关文章

  1. UVa-12563 劲歌金曲

    题目 https://vjudge.net/problem/Uva-12563 给出n首歌和KTV的剩余时间T,因为KTV不会在时间到的时候立刻把歌切掉,而是会等它放完.而<劲歌金曲>长达 ...

  2. UVa12563(DP)

    题意:求在给定时间内,最多能唱多少歌曲,在最多歌曲的情况下,使唱的时间最长. 该题类似于01背包问题,可用01背包问题的解题思路来求,每个歌曲相当于物品,歌曲的长度相等于物品重量,每个歌曲的“价值”为 ...

  3. 【紫书】(UVa12563)Jin Ge Jin Qu hao

    继续战dp.不提. 题意分析 这题说白了就是一条01背包问题,因为对于给定的秒数你只要-1s(emmmmm)然后就能当01背包做了——那1s送给劲歌金曲(?).比较好玩的是这里面dp状态的保存——因为 ...

  4. uva12563 Jin Ge Jin Qu hao(01背包)

    这是一道不错的题.首先通过分析,贪心法不可取,可以转化为01背包问题.但是这过程中还要注意,本题中的01背包问题要求背包必须装满!这就需要在普通的01背包问题上改动两处,一个是初始化的问题:把dp[0 ...

  5. 洛谷 UVA12563 Jin Ge Jin Qu hao 题解

    这道题其实是一道01背包的变形题,主要思路如下:在不把剩余时间用光的前提下(剩余时间>0),尽可能的多唱歌.于是我们可以用dp[i]表示的是到当前i秒时,最多可以唱多少歌. 状态转换方程:dp[ ...

  6. UVa12563- Jin Ge Jin Qu hao

    思路一定要清晰! /* * Author: Bingo * Created Time: 2014/12/25 3:45:35 * File Name: uva12563.cpp */ #include ...

  7. UVA 10465 Homer Simpson(全然背包: 二维目标条件)

    UVA 10465 Homer Simpson(全然背包: 二维目标条件) http://uva.onlinejudge.org/index.php? option=com_onlinejudge&a ...

  8. DP题目推荐合集(洛谷/UVa)

    今天下午要参加海淀区的比赛了...这几天临时抱佛脚刷了几道DP,正所谓临阵磨枪,不快也光...下面我 就把最近刷到的,自己觉得不错的动态规划题列出来: 1.P2690 接苹果 :(基础二维DP) 2. ...

  9. UVa 12563 劲歌金曲(0-1背包)

    https://vjudge.net/problem/UVA-12563 题意: 在一定的时间内连续唱歌,最后一首唱11分钟18秒的劲歌金曲,问最多能长多长时间. 思路: 0-1背包问题,背包容量为t ...

随机推荐

  1. python 导入模块错误

    问题: 导入一些模块或者运行第三方软件的时候,会出现一下类似错误: ImportError: No module named future.utils 问题原因: 没有安装第三方库 future,这个 ...

  2. 红米 Note3 (kenzo)刷入 Lineage OS

    红米 Note3 (kenzo)刷入Lineage OS 的过程 详细的教程请看 Install LineageOS on kenzo 本文做一些额外的补充 0 刷机之的准备工作 如果登陆了 Goog ...

  3. 号外号外!解决github+hexo+yilia评论插件的问题!!!

    先走一波效果图!    本人网站--http://www.wenzheng.club/ ps:效果还是不错的,支持QQ微信登录,支持表情,甚至gif动图评论! 插件采用韩国服务器的来必力评论插件--h ...

  4. 【转】sed正则表达式

    1 正则表达式简介 正则表达式(Regular Expression) 是一种描述文本(或字符串)模式的工具.正则表达式常用于查找文本的场合.想想一下我们日常生活中的例子,假如你想从电话本里找一个联系 ...

  5. XML系列之--Linq操作带属性的XML(四)

    关于XML,之前解析过电文收发方面的,就是所谓的带表头.前缀(命名空间)SOAP格式.这次需求是解析一个xml的模板(xls内容),然后填充数据,最后保存.需要时可转换xls.pdf等文件.关于这种带 ...

  6. Python之Django rest_Framework补充

    一.什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为"表征状态转移" ...

  7. C语言对函数操作的结果声明

    可以用来返回给调用者函数操作的状态值. /* 这是一份关于函数返回值定义的头文件. */ #ifndef _STATUS_H_ #define _STATUS_H_ #define STATUS in ...

  8. mvn 手动安装jar 到本地库

    安装: mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.1.0.7.0 -Dpackagi ...

  9. cmake编译安装mysql 5.6.12

    cmake安装mysql 5.6.12 从mysql 5.5 开始就要用cmake编译安装 下载mysql 下载地址:http://pan.baidu.com/s/1o68xxqE 一.安装mysql ...

  10. MySQL递归的替代方案

    类似查出某个机构下所有的子机构,可用递归的方式实现.但MySQL不支持递归,可以考虑用如下的方式来实现递归调用. 第一种,临时表方式,使用函数每次查出子机构,再可以和其他表联查. 第二种,新建一张表, ...