- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
初赛A:
第一题:
图标排列
描述
百度应用平台上有很多有趣的应用,每个应用都由一个开发者开发,每个开发者可能开发一个或多个应用。百度的工程师们想把应用尽可能好的推荐给用户。
研究发现,同一个开发者开发的程序的图标有很大的相似性。如果把同一个开发者开发的应用放在一起,用户很快就会厌倦相似的图标,如果把这些图标穿插摆放效果就会好很多。
现在工程师想给用户推荐来自m个开发者的n个应用,在推荐的时候这些应用的图标将排成整齐的一行展示给用户,相邻两个图标之间的距离正好是1,工程师们想让这些图标尽可能的穿插摆放。为了衡量穿插摆放的效果,给每个图标定义一个“分离度”,分离度的值是指当前图标和它左边最近的来自同一个开发者的图标之间的距离。如果一个图标左边没有来自同一个开发者的图标,则分离度为0。所有图标穿插摆放效果的值定义为所有图标的分离度之和。
已知每个开发者开发的应用个数,请帮助百度的工程师找到图标穿插摆放效果的最大值。
?
输入
输入的第一行包含两个整数n和m,用一个空格分隔,分别表示应用的个数和开发者的个数。
第二行包含m个正整数,相邻两个数之间用一个空格分隔,表示每个开发者开发的应用个数,这些整数之和必然等于n。
?
输出
输出一个整数,表示图标穿插摆放效果的最大值。
?
样例输入
8 3
3 3 2
?
样例输出
15
提示
对于20%的数据,n≤ 10;
对于40%的数据,n≤ 100。
对于100%的数据,1≤ m ≤ n ≤ 100,000
篮球场
描述
百度公司有一块长a米宽b米的矩形空地,空地的左上角坐标为(0,0),右下角坐标为(a,b)。空地上长着n株灌木,每株灌木都非常小。现在百度公司准备清理掉其中的一些灌木,在空地上修建两个长28米宽15米的篮球场。
球场必须完全修建在空地内部(边缘可以和空地的边缘重合)且球场边缘必须与空地边缘平行,两个篮球场不允许重叠(不考虑边缘)。
在清理灌木的时候,只有球场内部的灌木需要清理掉,球场外部和边缘的灌木不用清理。请帮助百度公司找到一种球场的建设方案,使得需要清理的灌木最少。
注意:在最优方案中球场的左上角坐标可能是实数。
?
输入
输入包含多组数据。
每组数据的第一行包含两个整数a、b,表示空地的长和宽。
第二行包含一个整数n,表示空地上灌木的数量。
?
接下来n行表示所有灌木的坐标,其中第i行包含两个整数xi、yi,表示第i个灌木的坐标为(xi,yi)。
最后一组数据之后的一行为两个0,表示输入结束。
输出
对于每组数据,输出一个整数,表示最少需要清理多少株灌木。
样例输入
50 40
3
11 17
24 26
36 20
0 0
?
样例输出
1
提示
空地、灌木和最优的球场修建方案如下图所示。
度度熊大战僵尸
描述
僵尸最近老在百度大厦附近出没,因此公司派出了度度熊去消灭他。
度度熊有n件武器,第i件武器有物理攻击力Ai和魔法攻击力Bi。在某个时刻t,武器能造成的伤害为Ai+ Bi *t。僵尸有一个初始血量值H,受到武器的攻击后,血量会减去武器的当前伤害值。如果某个时刻僵尸的血量值为负,则僵尸将原地满血复活为血量值H。因此为了消灭僵尸,度度熊的最后一击,必须恰好使僵尸的血量为0。
从时刻1开始的每个整数时刻,度度熊可以从自己的武器中挑选一个武器攻击僵尸一次,也可以
攻击僵尸。一件武器可以在不同的时刻使用多次。
由于度度熊武器的限制,不是每个血量的僵尸都能杀死。度度熊希望能知道能杀死的僵尸中第k小的血量值是多少。
?
输入
输入的第一行包含两个整数n,k,分别表示度度熊拥有的武器数和要求的血量是第几小的。
接下来n行表示度度熊拥有的武器,其中第i行包含两个整数Ai,Bi,表示第i个武器的物理和魔法攻击力。
?
输出
输出包含一个整数,表示度度熊能杀死的僵尸中第k小的血量值。
?
样例输入 2 8
1 3
3 5
?
样例输出
15
提示
度度熊能杀死的僵尸中前8小的血量值依次为4,7, 8, 10, 11, 13, 14, 15圆环
时间限制:1000ms
描述
一个圆环上有n个位置,这n个位置按顺时针依次标号为1, 2, …, n。初始时圆环的每个位置上都有一个1至n之间的整数,且每个整数只出现一次。
任何时刻,你可以将圆环上的数全部逆时针旋转一个位置,即第i个位置上的数变为原来第i + 1个位置上的数,第n个位置上的数变为原来第1个位置上的数。也可以将圆环上的数全部顺时针旋转一个位置,即第i个位置上的数变为原来第i – 1个位置上的数,第1个位置上的数变为原来第n个位置上的数。另有一个装置,可以交换圆环上第a个位置和第b个位置上的数。
下图给出了三种操作的示例,圆环上有6个位置,初始数字分别为1
文档评论(0)