UVA-12563劲歌金曲——双重优先条件+变形01背包
劲歌金曲
题意:
两个优化:
①唱歌次数最大
②时间最长
以①为首选条件
01背包模型,歌曲就是物品,时长就是体积,每首歌唱或不唱就对应物品的选或不选。
核心代码:
状态:
num[i],表示时长为i时的唱歌数量最大值;
d[i]表示时长为i最长的唱歌时间。
优先更新num[],如果num可以更新,那么d[]必须同时更新
for(int i=1;i<=n;i++){scanf("%d",&v);for(int j=t-1;j>=v;j--){if(num[j-v]+1>num[j] || (num[j-v]+1==num[j] && d[j-v]+v >d[j] )){num[j]=num[j-v]+1;d[j]=d[j-v]+v;}}}
#include<stdio.h>
#include<iostream>
#include<cmath>
#include<math.h>
#include<string>
#include<string.h>
#include<algorithm>
#include<queue>
#include<vector>
#define ms0(a) memset(a,0,sizeof(a))
#define ll long long
#define INF 0x3f3f3f3f
using namespace std;
const int maxn = 10000;
int ncase,d[maxn],num[maxn];
int main(){cin>>ncase;for(int T=1;T<=ncase;T++){int n,t,v;ms0(d);ms0(num);scanf("%d%d",&n,&t);for(int i=1;i<=n;i++){scanf("%d",&v);for(int j=t-1;j>=v;j--){if(num[j-v]+1>num[j] || (num[j-v]+1==num[j] && d[j-v]+v >d[j] )){num[j]=num[j-v]+1;d[j]=d[j-v]+v;}}}printf("Case %d: %d %d\n",T,num[t-1]+1,d[t-1]+678);}return 0;
}
UVA-12563劲歌金曲——双重优先条件+变形01背包相关推荐
- UVA - 12563 劲歌金曲(DP 01背包)
题目 KTV里面有n首歌曲你可以选择,每首歌曲的时长都给出了(每首歌时长不超过3min). 对于每首歌曲,你最多只能唱1遍. 现在给你一个时间限制t (t<=10^9) , t实际不会超过(18 ...
- UVA 12563 劲歌金曲 Jin Ge Jin Qu hao
劲歌金曲 Jin Ge Jin Qu hao 题面翻译 (如果当你看到这个标题的时候笑了,那么这个问题是为你准备的ヽ( ̄▽ ̄)ノ) 如果问一个麦霸:"你在KTV里必唱的曲目有哪些?" ...
- uva 12563 劲歌金曲
先介绍自己写的,比较循规蹈矩的方法.dp(i,j)表示必须在j时间内结束,在i,i+1,,,,n首歌中选择,可以唱的最大歌曲数 (包含jq) sing(i,j)表示在这个状态.歌曲数取最大的情况下,可 ...
- uva 12563劲歌金曲
动态规划例题 在规定的时间内要唱最多的歌但最后要留出时间唱劲歌金曲,求唱最多的歌的个数以及此时的最长时间 源码 #include<stdio.h> #include<string.h ...
- UVA 12563 劲歌金曲(滚动数组)
这道题练习了滚动数组,不过跟0-1背包问题有点不同,为了记录准确时间,通过设置条件把无用状态剔出来,消除了错误时间,f[i]表示i时,唱了多少首歌. #include<bits/stdc++.h ...
- UVa 12563 - Jin Ge Jin Qu hao(01背包)
给出剩余时间和想唱的歌,求最多能唱几首和最长时间. 较为简单的01背包问题,在算数目的时候顺便计算时间就好. #include<iostream> #include<cstring& ...
- 12563 劲歌金曲
##动态规划,01背包 title:UVa12563 #include <bits/stdc++.h> using namespace std; const int N = 55, M = ...
- 劲歌金曲 UVA 12563
劲歌金曲 UVA 12563 (If you smiled when you see the title, this problem is for you ^_^) For those who don ...
- 例题 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 ...
最新文章
- 分布式环境下的并发问题
- 三个小命令检查电脑!
- 算法导论学习笔记 6.5 优先队列
- 201671010135 2016--2017java程序设计对java的初步认识和对第一,二章的总结(0)
- Qt工作笔记-时QLabel具有点击事件(使用EventFilter)
- JSP中鼠标禁用代码
- ALGORITHMS
- AcWing 1987. 粉刷栅栏(离散化+差分)
- 使用Idea搭建Spring Boot环境
- IE中getElementById的Bug
- 我的大学专业是计算机英语作文,我的大学计划英语作文(通用5篇)
- VUE 完整项目构建 (1) -- 初始化
- 软件工程项目迭代周报(一)
- react-native 修改app应用名称
- 内连接、左外连接与右外连接的区别及作用介绍
- 中国公司的「强」盛、拼多多「翻车」和吃不了的播 | 极客一周
- 现代信息系统主要是基于计算机的,科学网—管理信息系统建设导论 - 张利华的博文...
- 算法实现: 在二叉树中找到两个节点的最近公共祖先
- 上海快递代理点信息-百度坐标
- python时间函数纳秒_在Python中以秒和纳秒获取POSIX / Unix时间?
热门文章
- python无法启动此程序、因为文件损坏_python报错:无法启动此程序,因为计算机中丢失...
- 读《世界因我而不同》
- js合并两个数组对象并且去掉重复的内容(map结合find)
- 实现Postman+Newman+Git+Jenkins+钉钉/邮件提醒接口自动化测试持续集成
- Android开发模式之RxJava+Retrofit+MVP(kotlin)
- 计算机科学、软件工程、信息工程专业!计算机专业该如何选择!
- JavaScript 线程
- Js获取 数组或对象 的长度
- 通达信捉妖改良CCI指标公式,简洁巧妙
- 主成分与因子分析异同_如何做主成分分析和因子分析?它们的区别与联系在哪里?...