uVa 12563 Jin Ge Jin Qu
2024-09-19 23:42:43
分析可知,虽然t<109,但是总曲目时间大于t,实际上t不会超过180*n+678.此问题涉及到两个目标信息,首先要求曲目数量最多,在此基础上要求所唱的时间尽量长。可以定义
状态dp[i][j]表示前i首歌曲,恰好唱的时间为j时,所唱的最长时间,于是就是裸的01背包了。
/*----UVa12563 Jin Ge Jin Qu
*/
#define _CRT_SECURE_NO_DEPRECATE
#include<iostream>
#include<vector>
#include<string.h>
#include<math.h>
#include<algorithm>
#define INF 0x3f3f3f3f
using namespace std;
const int maxn = 50 + 10; int dp[maxn*180+678]; //dp[i][j]表示前i首歌曲,时间长度恰好为j,所唱的最多曲数,可以直接使用一维数组
int t[maxn]; int main(){
int i, j,T,iCase=1,n,m;
scanf("%d", &T);
while (T--){
scanf("%d%d", &n, &m);
m--; //在此不能恰好唱完,因为后面还要唱一首jin Ge Jin Qu
for (i = 1; i <= n; i++)scanf("%d", &t[i]); for (i = 0; i <= m; i++)dp[i] = -INF;
dp[0] = 0; for (i = 1; i <= n; i++){
for (j = m;j>=t[i];j--)
dp[j]=max(dp[j], dp[j - t[i]] + 1);
}
int ans =-INF, maxt = -INF;
for (j = m; j >=0; j--)
if (ans < dp[j]){ ans = dp[j];maxt = j;} printf("Case %d: %d %d\n",iCase++,ans + 1, maxt + 678);
}
return 0;
}
最新文章
- PHPCMS V9 非超级管理员批量移动权限
- 爱上MVC~为Html.EditorForModel自定义模版
- 学习笔记——Maven实战(五)自动化Web应用集成测试
- .NET Web开发初学者必知的四个网站
- HTML---6 运算符,类型转换
- Quarzt.NET 任务调度框架
- 浅谈dynamic的简单使用用法
- SSIS -->;>; Variable Data Type vs SSIS Data Type
- PHP读书笔记(4)-运算符
- .net中div置于顶层+iframe
- 3 Sum Closest 解答
- Linux开源模块迁移概述暨交叉编译跨平台移植总结--从《嵌入式Linux驱动模板简洁和工程实践》
- 线性结构与树形结构相互转换(ES6实现)
- PAT1110:Complete Binary Tree
- return的作用
- 学号 20175212 《Java程序设计》第九周学习总结
- Linux&#160;下Shell变量,环境变量的联系与区别
- 网络编程——socket编程
- Jmeter ----Bean shell使用
- iOS - viewDidLoad, viewWillDisappear, viewWillAppear区别及加载顺序
热门文章
- nyoj 题目 孪生素数问题
- Dev express 笔记
- hdu 1172 猜数字
- ci动态设置config配置
- ngrepeat 时注意的地方和一些little tricks
- authencated认证登录
- com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/annotation/ColorRes.class
- VS2005重置所有设置
- Fiddler抓包1-抓firefox上https请求【转载】
- 【原创】DQS安装失败——系统重新引导是否处于挂起状态