UVA 473 Raucous Rockers
原文
题意: 有n首音乐,m个磁盘,磁盘容量都是t,一首音乐不能被分割到两个盘里,问最多能在磁盘里放置多少音乐。要求音乐的放置不能逆序。即下标大的不能放在下标小的前面。
解法: 设状态dp[i][j][k]为在第i首音乐,已放置到第j个磁盘,且第j个磁盘已使用k个单位空间时能放置的最大数量。
状态的转移:
1: 当不放置这首歌时,dp[i][j][k] = max(dp[i][j][k], dp[i-1][j][k])。
2: 当这首歌是j盘的第一首歌时, dp[i][j][k] = max(dp[i][j][k], dp[i-1][j-1][t])。
3: 当这首歌不是j盘的第一首歌时,dp[i][j][k] = max(dp[i][j][k], dp[i-1][j][k-t[i]])。
题目中完全没有给出任何数据范围,因此空间上最好优化一下,通过滚动数组可以略去第一维。
/* **********************************************
Author : Nero
Created Time: 2013-8-27 22:33:58
Problem id : UVA 473
Problem Name: Raucous Rockers
*********************************************** */#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
#define REP(i,a,b) for(int i=(a); i<(int)(b); i++)
#define clr(a,b) memset(a,b,sizeof(a))const int INF = 0x3f3f3f3f;
int n,t,m;
int dp[510][510];int main() {int cas;scanf("%d", &cas);while(cas--) {scanf("%d%d%d", &n, &t, &m);clr(dp,0);int d;REP(i,1,n+1) {scanf("%d", &d);getchar();for(int j = m; j > 0; j --) {for(int k = t; k > 0; k --) {if(d <= k) {dp[j][k] = max(dp[j][k], dp[j][k-d] + 1);dp[j][k] = max(dp[j][k], dp[j-1][t] + 1);}}}}printf("%d\n", dp[m][t]);if(cas) printf("\n");}return 0;
}
UVA 473 Raucous Rockers相关推荐
- UVA 473——Raucous Rockers
题意:给定n个数,放到m个容器里,每个容器的容量是t(n个数的累加和不超过t),在不打乱放的顺序的情况下问最多能放多少个数? 思路:多维dp,f[i][j[k]表示前i个数放到第j个容器放k个的最大数 ...
- 【USACO题库】3.4.4 Raucous Rockers“破锣摇滚”乐队 题解
[USACO题库]3.4.4 Raucous Rockers"破锣摇滚"乐队 题解 你刚刚继承了流行的"破锣摇滚"乐队录制的尚未发表的N(1 <= N ...
- “破锣摇滚”乐队 Raucous Rockers——动态规划
"破锣摇滚"乐队 Raucous Rockers 题目来源 洛谷P2736 题目描述 你刚刚继承了流行的"破锣摇滚"乐队录制的尚未发表的N(1 <= N ...
- usaco Raucous Rockers(dp)
dp[i][j]表示到了第i张CD且第i张CD用了j分钟可以装的最多歌曲. /* ID:jinbo wu LANG:C++ TASK: rockers */ #include<bits/stdc ...
- USACO 3.4 Raucous Rockers (rockers)
/* Main idea: 一道动态规划题,但观察数据规模,穷举就行了. 穷举每首歌是否选取所有的组合可能(2^20种),算出每种情况所有光盘上一共能存的歌曲数目,保留最大值即可. 对于穷举每首歌是否 ...
- 动态规划算法的优化技巧
动态规划是信息学竞赛中一种常用的程序设计方法,本文着重讨论了运用动态规划思想解题时时间效率的优化.全文分为四个部分,首先讨论了动态规划时间效率优化的可行性和必要性,接着给出了动态规划时间复杂度的决定因 ...
- usaco题思考记录
1. 修理牛棚 Barn Repair 思路:反向,枚举所有间隔,从大到小排序,依次+板子不填它,直到板子数够了为止,拿总长去减::: 结论:逆向思维. 2.丢失的牛 思路:BFS::: 结论:有后效 ...
- 动态规划常见类型总结
本文针对动态规划的常见类型进行总结.虽说总结的是动态规划,但顺便把递推也放了进来.严格来说,递推不属于动态规划问题,因为动态规划不仅有递推过程,还要有决策(即取最优),但广义的动态规划是可以包含递推的 ...
- 【USACO题库】 动态规划 汇总(普及-/普及)
数据结构提高是够用了=-=虽然树状数组没学 但是其他类问题只能打到普及 普及啊啊啊!!! 而且这边省选组都是什么仙人掌啊,什么系什么点对啊...感觉数据结构并没有什么用 (实际上很有用但我不会用就是了 ...
- [搜索]UVa 129 困难的串
题意:将一个包含两个相邻的重复子串的子串,称为"容易的串",其他为"困难的串". 输入正整数n和l,输出由前l个字符组成的,字典序第n小的困难的串. 输入样例: ...
最新文章
- linux 在终端修改文件,linux命令行学习(42):修改.bashrc文件
- 学计算机必懂的53个单词缩写
- python 封装_python接口自动化学习笔记(封装方法用于读取excel)
- 秒杀架构中高性能可扩展高可用的一点思考
- 做俯卧撑的10个技巧
- tkinter窗口居中方法
- parted如何将磁盘所有空间格式化_linux下大于2T的硬盘格式化问题
- c语言 生成一维条形码,C# BarcodeLib。dll 生成一维码的问题
- Gym100187I
- w7系统计算机e盘无法打开,Win7电脑磁盘打不开怎么办
- linux ssh禁止用户访问任何目录,怎么限制远程ssh用户访问特定的文件
- Bailian2815 城堡问题【DFS】
- 弱网环境搭建方案选型
- 使用angrutils生成控制流图出错的解决过程
- 计算机bios更改usb端口,联想电脑bios怎么设置usb接口
- ZZULIOJ1013
- python卡方拟合性检验_卡方检验
- windows虚机使用IIS服务搭建ftp
- 【机器学习】李宏毅-判断年收入
- 三维激光扫描系统基本原理及分类
热门文章
- 『中文、英文词频统计分析软件』免费工具分享
- mysql省市区数据导入_最新行政区划省市区镇街道 导入数据库 MYSQL (2020年8月 )
- 那些想上天的亿万富翁,开启了新的“太空竞赛”
- DM6437 GPIO模拟I2C
- ps高低频磨皮详细教学
- 一键磨皮插件:DR5白金版(支持ps 2022)中文版
- Android图标下载网站
- 小米9pro计算机打不开,小米9 Pro刷机教程,线刷升级更新官方系统包
- 皮肤暗的女孩如何穿衣服
- 解决shardingsphere 4.1.1 SQLFeatureNotSupportedException: isValid sharding-jdbc