UVA 473 Raucous Rockers
来源:互联网 发布:linux make 编辑:程序博客网 时间:2024/05/26 02:51
原文
题意: 有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 : NeroCreated Time: 2013-8-27 22:33:58Problem id : UVA 473Problem 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 (dp)
- UVA 473 - Raucous Rockers(dp)
- uva 473 - Raucous Rockers(dp)
- UVA 473-Raucous Rockers(DP)
- UVA 473——Raucous Rockers
- UVA 473 Raucous Rockers(多个背包dp)
- Raucous Rockers
- Raucous Rockers~
- USACO 3.4 Raucous Rockers (rockers)
- USACO3.4.3 Raucous Rockers (rockers)
- USACO3.4.3 Raucous Rockers (rockers)
- Section 3.4 Raucous Rockers
- usaco - Raucous Rockers
- usaco Raucous Rockers
- usaco Raucous Rockers
- usaco Raucous Rockers java
- 动规-Raucous Rockers
- ZOJ1203S wordfish
- JSTL基本用法。
- js -- 动画
- C++ List的用法(整理)
- 使用 Tkprof 分析 ORACLE 跟踪文件
- UVA 473 Raucous Rockers
- android 程序错误处理全局处理
- CodeForce 339:A+B+C
- [每日一题] OCP1z0-047 :2013-08-27 WITH子句.........................................................121
- gcc 选项 -c -I -o -L -l
- Android 颜色渲染(三) Shader颜色渲染
- 小知识点
- 开聊
- 一个more程序的实现