- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
百度之星Astar2012程序设计大赛 复赛试题(下)
百度之星Astar2012程序设计大赛 复赛试题(下)
2012年6月17日,百度爱好者给大家带了2012百度之星Astar2012程序设计大赛复赛第二场的题目,供有兴趣的朋友研究。复赛第二场共3题。分别是轮子上的度度熊2、消灭病毒和BD语言翻译器。
第一题、轮子上的度度熊2
百度楼下有一块很大很大的广场。广场上有很多轮滑爱好者,每天轮滑爱好者们都会在广场上做一种叫做平地花式轮滑的表演。度度熊也想像他们一样在轮上飞舞,所以也天天和他们练习。
因为度度熊的天赋,一下就学会了好多动作。但他觉得只是单独的做动作很没意思,动作的组合才更有欣赏性。
平地花式轮滑(简称平花),是穿轮滑鞋在固定数量的标准桩距间做无跳起动作的各式连续滑行。度度熊表演的舞台上总共有N个桩,而他也从自己会的动作中挑出M最好看的。
但事情并没有这么简单。首先,每个动作因为复杂度不同,所以经过的桩的个数、消耗的体力也不尽相同。然而度度熊的体力是有限的。
然后,为了保持连贯性,有些动作是接不起来的,所以每个动作都有他前面能接的一个动作的列表。更有甚者,有的动作要考虑前很多个动作才能确定是否能做出来。但度度熊这次把这些应该连接在一起的动作直接定为一个动作了。所以一个动作被描述为一个序列:{X1, X2, X3, … Xn}表示,做这个动作的时候会先前进X1个桩,再前进X2个桩(注意:Xi可能是负数,这表示后退|Xi|个桩)。度度熊的完整表演需要恰好停在最后一个桩后面,并且在表演过程中不允许有前进/后退方向上桩不够的情况发生。
最后,评分也很复杂。这次每个动作没有单独得分了,最终得分=组合得分+剩余体力。表演的时候,需要确定一个组合,表演过程中完成这组组合中所有的动作,同样的动作允许多次出现,但不能包含其他多余的动作。这个组合的分数就是最终得分中的“组合得分”。
举个例子,总共有10个桩,体力上限是25,有以下几个动作:
动作1:{1,3,1},需要5的体力。
动作2:{1,-3,1},需要4的体力。
动作3:{3,3},需要4的体力。
动作4:{5},需要3的体力。
组合1:(动作1,动作2,动作4),得分15。
组合2:(动作1,动作3),得分10。
组合3:(动作2,动作3),得分5。
最优方案应该是动作3+动作2+动作2+动作3。最后得分:组合得分5分+剩余体力9=14分。
虽然,度度熊一下就算出来自己应该怎么表演了。但是他还是想考考精通编程的你。
输入
一开始一个整数T,表示有T组数据,每个数据如下格式:
第一行有四个整数,N,M,P,Q。分别表示桩数、动作数、组合数和体力上限。
第二行M个整数,表示每个动作需要的体力。
接下来M行,每行描述一个动作。每行的第一个数X(1=X=10),表示动作分为X段。后面接X个数,这个长度为X的序列描述这个动作。
接下来P行,每行描述一个组合。每行的前两个数Z(1=Z=M),Y,Z表示组合中总共有Z个动作,Y表示组合能获得的分数。后面接Z个数,表示组合中包含的Z个动作的编号。
输出
对于每个数据,输出度度熊能获得的最高分数。
样例输入
1
10 4 3 25
5 4 4 3
3 1 3 1
3 1 -3 1
2 3 3
1 5
3 15 1 2 4
2 10 1 3
2 5 2 3
样例输出
14
提示
保证至少有一个方案满足要求。度度熊可以多次到达起始位置和终止位置。不存在两个组合包含完全一样的动作。
1≤N≤1000,1≤M≤12,0≤P≤3000,1≤Q≤10000,所有分数之和在32位有符号整数范围之内。每个动作至少需要1的体力。
第二题、消灭病毒
最近科学家发现了一种代号为M的奇怪病毒,感染M病毒的熊会止不住卖萌。经过不懈努力,科学家们研制出N种可以杀死M病毒的药品。第i种药品在首次使用时可以杀死Di个M病毒;以后每次使用,药品的效果会逐次递减,即第2次使用可以杀死Di-1个病毒,第3次使用可以杀死Di-2个病毒,第4次使用可以杀死Di-3个病毒……直到最后不再能杀死M病毒(杀死0个)。
从现在开始,每秒钟科学家可以选择使用一种药品杀死M病毒。不过,目前研制出的药品还不够稳定:第i种药品会在从现在开始的第Ci秒后失去药效(不再能杀死M病毒),因此只能在前Ci秒使用(若Ci=0则该药物在任何时候使用都没有效果)。科学家们想知道如何安排药品的使用,可以在所有药品失效前杀死最多的M病毒。
输入
输入的第一行是一个正整数T(1 = T = 10),表示测试数据的组数。
每组测试数据的第一行是一个整数N(0 = N = 100000),表示药品的数目。
以下N行每行包含两个整数Di,Ci(0 = Di, Ci = 10^9),表示第i种药品首次使用能杀死的M病毒数和药效持续时间。
输出
每组数据输出一个整数,在所有药品失效前
文档评论(0)