题目

https://vjudge.net/problem/Uva-12563
给出n首歌和KTV的剩余时间T,因为KTV不会在时间到的时候立刻把歌切掉,而是会等它放完.而《劲歌金曲》长达678秒,因此你可以在从你喜欢的歌中选择一些,在时间结束前再唱一首《劲歌金曲》.
给出一种策略,使得唱的歌曲尽可能的多,在此前提下,使得唱的时间尽可能的长.

分析

和一般的01背包相比,本题有歌曲数目和歌曲长度两个优化目标,优先使歌曲数目最多,如果歌曲数目相同,则使歌曲长度最长.

因此可以写一个结构体描述上述属性

struct Node{int num;//歌曲数量int time;//歌曲总时间bool operator < (Node n){return num < n.num || (num==n.num && time < n.time);}
};

其余与一般的01背包没有大的区别

AC代码

#include "bits/stdc++.h"
using namespace std;
int t[55];//记录每首歌的时间
const int maxn = 180*50+5;
struct Node{int num;//歌曲数量int time;//歌曲总时间bool operator < (Node n){return num < n.num || (num==n.num && time < n.time);}
}dp[maxn];int main(int argc, char const *argv[])
{int C, n, T, i, j;cin >> C;int Case = 0;while(Case++ < C){cin >> n >> T;for(i=0;i<n;i++){cin >> t[i];}T--;memset(dp, 0, sizeof(dp));for(i=0;i<n;i++){for(j=T;j>=t[i];j--){Node temp;temp.num = dp[j - t[i]].num + 1;temp.time = dp[j - t[i]].time + t[i];if(dp[j] < temp) dp[j] = temp;}}cout << "Case " << Case << ": " << dp[T].num+1 << ' ' << dp[T].time+678 << endl;}return 0;
}

转载于:https://www.cnblogs.com/lepeCoder/p/UVa-12563.html

UVa-12563 劲歌金曲相关推荐

  1. UVA 12563 劲歌金曲 Jin Ge Jin Qu hao

    劲歌金曲 Jin Ge Jin Qu hao 题面翻译 (如果当你看到这个标题的时候笑了,那么这个问题是为你准备的ヽ( ̄▽ ̄)ノ) 如果问一个麦霸:"你在KTV里必唱的曲目有哪些?" ...

  2. uva 12563 劲歌金曲

    先介绍自己写的,比较循规蹈矩的方法.dp(i,j)表示必须在j时间内结束,在i,i+1,,,,n首歌中选择,可以唱的最大歌曲数 (包含jq) sing(i,j)表示在这个状态.歌曲数取最大的情况下,可 ...

  3. uva 12563劲歌金曲

    动态规划例题 在规定的时间内要唱最多的歌但最后要留出时间唱劲歌金曲,求唱最多的歌的个数以及此时的最长时间 源码 #include<stdio.h> #include<string.h ...

  4. UVA - 12563 劲歌金曲(DP 01背包)

    题目 KTV里面有n首歌曲你可以选择,每首歌曲的时长都给出了(每首歌时长不超过3min). 对于每首歌曲,你最多只能唱1遍. 现在给你一个时间限制t (t<=10^9) , t实际不会超过(18 ...

  5. UVA 12563 劲歌金曲(滚动数组)

    这道题练习了滚动数组,不过跟0-1背包问题有点不同,为了记录准确时间,通过设置条件把无用状态剔出来,消除了错误时间,f[i]表示i时,唱了多少首歌. #include<bits/stdc++.h ...

  6. 12563 劲歌金曲

    ##动态规划,01背包 title:UVa12563 #include <bits/stdc++.h> using namespace std; const int N = 55, M = ...

  7. 劲歌金曲 UVA 12563

    劲歌金曲 UVA 12563 (If you smiled when you see the title, this problem is for you ^_^) For those who don ...

  8. 例题 9-5 劲歌金曲(Jin Ge Jin Qu [h]ao Rujia Liu‘s Present 6, UVa 12563)

    原题链接:https://vjudge.net/problem/UVA-12563 分类:背包问题 备注:0-1背包变形 注意:千万不要包括给的时间t,因为劲歌金曲是必须要唱的! #include&l ...

  9. UVA 12563 Jin Ge Jin Qu hao 01背包变形

    基本的01背包,更新的时候保持背包里每一个元素的num最大然后time尽量长 CSDN也支持makedown了试一下 12563 Jin Ge Jin Qu hao (If you smiled wh ...

  10. 动态规划——劲歌金曲

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

最新文章

  1. Session的lock()方法
  2. Cassandra 的数据存储结构——本质是SortedMapRowKey, SortedMapColumnKey, ColumnValue
  3. 线程创建后,立刻调用CloseHandle的原因
  4. YUIDoc的使用方法小结
  5. Spring中任务调度cronExpression配置说明
  6. 为什么选择做班级管理系统_为什么即使在平衡的班级下准确性也很麻烦
  7. [BZOJ]1071 组队(SCOI2007)
  8. Q99:当Bezier曲面(Utah Teapot)同时遇上“噪声纹理”和“Phong反射模型”
  9. Oracle不常用函数
  10. python pyhook_python中使用pyhook实现键盘监控的例子
  11. 淘口令流量属于淘宝什么流量来源 如何用淘口令来刷流量
  12. 《缠中说禅108课》59:图解分析示范四
  13. PHP:pack、unpack用法大全
  14. 如何用计算机作图并求斜率,简单斜率分析以及作图
  15. DolphinDB Database丨交易回测系列一:技术信号回测
  16. Python 之霍兰德人格与职业分析
  17. 使用VMware镜像文件快速安装Kali linux
  18. hp服务器不显示错误代码,惠普服务器开启不了
  19. dateframe取某列数据_DataFrame数据选取全攻略
  20. 最长公共子序列(LCS)的C++实现

热门文章

  1. Python检查一组数据是否能构成和谐集
  2. 快速设置安卓小米华为oppovivo充电提示音,教程来了
  3. 分形树——python递归
  4. R语言 在控制台隐藏函数自带的print内容
  5. Sketchup Ruby 二次开发 启动外部应用
  6. MongoDB正则查询操作
  7. shell 数组元素有空格_Shell数组:Shell数组定义以及获取数组元素
  8. IDEA 断点调试笔记
  9. 对Angular的onPush,markForCheck()等变化检测方法说明和试用
  10. asp.net1005-基于C#的健身房管理系统#毕业设计