【2021】360春招编程题(第一批)

时长:120分钟 总分:2分

126浏览 0人已完成答题

题型介绍
题型 填空题
数量 2
1.
【2021】360编程题-神枪手
问题详情

小马最近找到了一款打气球的游戏。

每一回合都会有 n个气球,每个气球都有对应的分值,第 i个气球的分值为ai

这一回合内,会给小马两发子弹,但是由于小马的枪法不准,一发子弹最多只能打破一个气球,甚至小马可能一个气球都打不中。

现给出小马的得分规则:

1. 若小马一只气球都没打中,记小马得0分。

2. 若小马打中了第 i只气球,记小马得ai 分。

3. 若小马打中了第 i只气球和第 j只气球(i<j),记小马得 ai|aj分。

(其中| 代表按位或,按位或的规则如下:

参加运算的两个数,按二进制位进行或运算,只要两个数中的一个为1,结果就为1。
即 0|0=0, 1|0=1, 0|1=1, 1|1=1。
例 2|4即 00000010|00000100=00000110,所以2|4=6

现在请你计算所有情况下小马的得分之和。

输入描述:

第一行,一个整数n,表示此回合的气球数量。

第二行,用空格分开的n 个整数,第i个整数为ai,表示每个气球对应的分值。

对于其中60% 的数据, 1≤n≤1000, 1≤ai≤100000

对于另外 40% 的数据,  1≤n≤50000, 1≤ai≤100000

输入样例: 3 1 2 3 输出描述:

一行一个整数,代表所有情况下小马的得分之和。

输出样例 15
2.
【2021】360编程-火星人的宝藏
问题详情

X星人发现了一个藏宝图,在藏宝图中标注了N个宝库的位置。这N个宝库连成了一条直线,每个宝库都有若干枚金币。

X星人决定乘坐热气球去收集金币,热气球每次最多只能飞行M千米(假设热气球在飞行过程中并不会发生故障)此外,由于设计上的缺陷,热气球最多只能启动K次。

X星人带着热气球来到了第1个宝库(达到第1个宝库时热气球尚未启动),收集完第1个宝库的金币后将启动热气球前往下一个宝库。如果他决定收集某一个宝库的金币,必须停下热气球,收集完之后再重新启动热气球。当然,X星人每到一个宝库是一定会拿走这个宝库所有金币的。

已知每一个宝库距离第1个宝库的距离(单位:千米)和宝库的金币数量。

请问X星人最多可以收集到多少枚金币?

输入描述:

单组输入。

第1行输入三个正整数N、M和K,分别表示宝库的数量、热气球每次最多能够飞行的距离(千米)和热气球最多可以启动的次数,三个正整数均不超过100,相邻两个正整数之间用空格隔开。

接下来N行每行包含两个整数,分别表示第1个宝库到某一个宝库的距离(千米)和这个宝库的金币枚数。(因为初始位置为第1个宝库,因此第1个宝库所对应行的第1个值为0。)

输入保证所有的宝库按照到第1个宝库的距离从近到远排列,初始位置为第1个宝库。

输入样例: 5 10 2 0 5 8 6 10 8 18 12 22 15 输出描述:

输出一个正整数,表示最多可以收集的金币数。

输出样例 25