英文原题
大意:有S首歌,要放到D个CD里。每首歌有一个序号,每个CD有个序号,如果歌曲序号I放在CD(序号J)中,那么序号大于J的CD中不允许有序号小于I的歌曲。每个歌曲有个长度,CD可容纳的歌曲的长度相同并给定,每张CD中放的歌曲的总长度不能超过CD的容量T。求最多能放下多少首歌。
看看数据限制,S<=20, T<=20, D<=20,显然可以用简单的动态规划:best(s,t,d)表示序号s及之后的歌曲要放入最后d张CD中,其中序号最大的CD剩余的容量为t,其余CD剩余容量为T(初始容量)。那么,只有三种可能情况:
1.放弃歌曲s,那么s不能出现在之后的CD中,得best(s+1,t,d);
2.如果歌曲s长度不超过本CD长度,则将其放入本CD中(显然如果要放这首歌,就不能放在后面的CD中),得best(s+1,t-len(s),d)+1;
3.如果将s放在这张CD中,可选择本CD中不再放其他歌曲,则得best(s+1,T,d-1)+1。
取这三种情况的最大值为best(s,t,d),即为所求。
大意:有S首歌,要放到D个CD里。每首歌有一个序号,每个CD有个序号,如果歌曲序号I放在CD(序号J)中,那么序号大于J的CD中不允许有序号小于I的歌曲。每个歌曲有个长度,CD可容纳的歌曲的长度相同并给定,每张CD中放的歌曲的总长度不能超过CD的容量T。求最多能放下多少首歌。
看看数据限制,S<=20, T<=20, D<=20,显然可以用简单的动态规划:best(s,t,d)表示序号s及之后的歌曲要放入最后d张CD中,其中序号最大的CD剩余的容量为t,其余CD剩余容量为T(初始容量)。那么,只有三种可能情况:
1.放弃歌曲s,那么s不能出现在之后的CD中,得best(s+1,t,d);
2.如果歌曲s长度不超过本CD长度,则将其放入本CD中(显然如果要放这首歌,就不能放在后面的CD中),得best(s+1,t-len(s),d)+1;
3.如果将s放在这张CD中,可选择本CD中不再放其他歌曲,则得best(s+1,T,d-1)+1。
取这三种情况的最大值为best(s,t,d),即为所求。
/* ID: blackco3 TASK: rockers LANG: C++ */ #include <iostream> #include <memory.h> using namespace std; const int _max_song_(20), _max_time_(20), _max_disc_(20) ; int len[_max_song_], best[_max_song_+1][_max_time_+1][_max_disc_+1] ; int main() { freopen("rockers.in", "r", stdin); freopen("rockers.out", "w", stdout); int n_song, time_limit, n_disc ; cin >> n_song >> time_limit >> n_disc ; for( int i=0; i<n_song; i++ ) cin >> len[i] , best[i][0][0]=0; register int in , out ; memset( best, 0, sizeof(best) ); for( int is=n_song-1; is>=0; is-- ){ for( int it=0; it<=time_limit; it++ ){ for( int id=1; id<=n_disc; id++ ){ out = best[is+1][it][id] ; if( it>=len[is] ) in = /*len[is]*/ 1 + max( best[is+1][it-len[is]][id], best[is+1][time_limit][id-1] ); else in = 0 ; best[is][it][id] = max( in, out ) ; } } } cout << best[0][time_limit][n_disc] << endl ; return 0 ; }
发表评论
-
USACO Training Section 4.2 Cowcycles
2010-01-31 21:11 882英文原题 中文题译 ... -
USACO Training Section 4.2 Job Processing
2010-01-30 17:31 1130英文原题 中文题译 大意: 有N个工件,每个工件要经 ... -
USACO Training Section 4.2 Drainage Ditches ISAP非递归和多路增广递归
2010-01-29 19:39 1843郁闷。不小心覆盖了重 ... -
USACO Training Section 4.2 The Perfect Stall 匈牙利算法的递归和非递归实现
2010-01-28 21:21 1641英文原题 中文题译 ... -
USACO Training Section 4.1 Cryptcowgraphy 奶牛密码
2010-01-27 20:58 1194英文原题 中文题译 大意: 奶牛们要从农场逃跑 ... -
USACO Training Section 4.1 Beef McNuggets
2010-01-26 21:37 964英文原题 中文题译 大意: 给定N个正整数, ... -
USACO Training Section 4.1 Fence Loops
2010-01-24 20:14 1061英文原题 大意: 农夫布朗的牧场上的篱笆已经失 ... -
USACO Training Section 3.4 Closed Fences
2010-01-23 17:50 1400英文原题 题意 一个 ... -
USACO Training Section 3.4 American Heritage
2010-01-21 23:19 771英文原题 大意:有一个由最多26个大写字母构成的二叉树 ... -
USACO Training Section 3.4 Electric Fence
2010-01-21 12:57 967英文原题 大意:给定一个三角形(0,0),(m,n),( ... -
USACO Training Section 3.3 Riding the Fences
2010-01-20 23:38 1203英文原题 中文题译 经典的求欧拉路径:给定最多两个奇 ... -
USACO Training Section 3.3 Shopping Offers
2010-01-19 22:18 912英文原题 中文题译 这是个与日常生活相关的题。商场促销 ... -
USACO Training Section 3.3 A Game
2010-01-19 20:54 1091英文原题 有如下一个双人游戏:N(2 <= N & ... -
USACO Training Section 3.3 Home on the Range
2010-01-19 19:36 771英文原题 中文题译 大意:给定一个01矩阵,计算其中全为 ... -
USACO Training Section 3.3 Camelot
2010-01-19 03:39 1228英文原题 中文题译 ... -
USACO Training Section 3.2 Sweet Butter
2010-01-19 00:10 1043英文原题 中文题译 大意:农场之间有路构成稀疏无向图,若 ... -
USACO Training Section 3.2 Magic Squares
2010-01-18 23:11 928英文原题 中文题译 大意:有人发明了一种有8个块三种变换 ... -
USACO Training Section 3.2 Feed Ratios
2010-01-18 20:52 1304英文原题 中文题译 大意:给出整数a[i][j]和 ... -
USACO Training Section 3.2 Spinning Wheels
2010-01-18 19:37 865英文原题 中文题译 大意:有五个纺车飞轮,每个都有最多五 ... -
USACO Training Section 3.2 Stringsobits
2010-01-18 01:04 987英文原题 中文题译 大意:求至多有L个1的第i个N位二进 ...
相关推荐
ACM----USACO Training(解题博客网),提供了USACO Training解题的代码,可以参考一下
自己写的usaco_training带代码。供参考,有一道题是cheat的。自己看吧。
usaco测试数据+标程 usaco的section1到section5的所有测试数据 以及标准程序
usaco解题报告,就是usaco.training.gateway上面的题目全解
USACO题解+代码+翻译,好东西,超级齐全,对大家帮助不小,特别是现在nocow挂了
usaco section2.3--section5.5源程序。。。。。。。。。。。。。。。。
[USACO 1.1.4]破碎的项链.cpp
3.4 Section 3.4 4 Chapter4 4.1 Section 4.1 4.2 Section 4.2 4.3 Section 4.3 4.4 Section 4.4 5 Chapter5 5.1 Section 5.1 5.2 Section 5.2 5.3 Section 5.3 5.4 Section 5.4 5.5 Section 5.5
1.歌曲必须按照创作的时间顺序在 CD 盘上出现 2.选中的歌曲数目尽可能地多 3.不仅同光盘上的歌曲写入时间要按顺序,前一张光盘上的歌曲不能比后一张
USACO_培训USACO_培训Ride.java-> Gift1.java->
USACO全部译题 USACO Training Program Gateway
USACO training 教程翻译合集(清晰明确)
USACO培训页面美国计算机奥林匹克训练页2015年6月17日开始
One of the answer of the USACO training exercises.
usaco 合集,包括英文原题和中文译题,测试数据以及答案,很全啊!usaco 合集usaco 合集usaco 合集usaco 合集
usaco历年测试数据
usaco 2010-2011 nov news,喜欢usaco的朋友可以看看
USACO培训网站 我为章节解决方案。 每个文件的多行USACO标识信息注释 第1章全部的解决方案 第2章全部的解决方案
USACO题集及答案
某些USACO题目的答案,很详细,代码清晰结构良好,算法高效易于调试