全国高校计算机能力挑战赛 Python
16、对于给出的长度为N的整数数组,对连续3个元素求平方和,输出平方和的最大值。 输入说明:第一行,数组中元素个数N(N<1000),第二行是这个数组中的N个元素,中间用空格隔开,每个元素小于100000。 输出说明:输出连续3个元素平方和的最大值。 输入样例:8 1 1 -1 2 -3 3 -4 2 输出样例:34
签到题
s = input()
list = s.split()
n = map(int, list[0])
arr = map(int, list[1:])
arr = [i * i for i in arr]
print(max(sum(arr[i:i + 3]) for i in arr))
17、1-1
投石饮水
一只乌鸦看到一个圆柱型瓶里有水,当水面高度距离瓶口小于2cm时,乌鸦才可以喝到水。
乌鸦发现容器边有一堆石子,假定每个石子的体积都是8cm^3。现在已知容器内雨水的高度,请你帮忙求至少需要投入多少小石子,乌鸦才能喝到水。
输入说明:
两个整数,分别表示容器的直径和容器内水面距离瓶口的距离(单位:cm)。取π=3。
输出说明:
一个整数,需要放入的石子数。
输入样例:
10 9
输出样例:
66
填满所需体积/石头体积向上取整
import math
diameter, dis = map(int, input().split())
radius = diameter / 2
volume_needed = 3 * (radius ** 2) * (dis-2)
stones_needed = math.ceil(volume_needed / 8)
print(max(0,stones_needed))
18、集合位置
多个机器人分布在M*N(10≤M,N≤1000)的方格中,每个机器人分布在不同的方格里。规定每个机器人只能向上下左右的相邻方格移动,每移动一个方格需要消耗1个单位能量。
现在要求所有机器人集合,集合点只能是某个机器人初始所在方格。
现在请找一个集合点,使得所有机器人到达该点消耗的总能量最低。
输入说明:
第一行是一个整数K(0<K≤100),表示机器人的总数。
之后K行是每个机器人所在方格的位置,用x,y表示,以空格隔开。
输出说明:
输出最低的总能量消耗。
输入样例:
4
4 5
3 3
2 2
4 4
输出样例:7
曼哈顿中位数,就是所有点x,y分别的中位数,再求和
def manhattan_median(points):
x_coords = sorted(point[0] for point in points)
y_coords = sorted(point[1] for point in points)
median_x = x_coords[len(x_coords) // 2]
median_y = y_coords[len(y_coords) // 2]
total_distance = 0
for x, y in points:
total_distance += abs(x - median_x) + abs(y - median_y)
return total_distance
# 输入数据
points = []
n = int(input())
for i in range(n):
x, y = map(int, input().split())
points.append([x, y])
# 计算并输出曼哈顿中位数点和距离总和
total_distance = manhattan_median(points)
print(total_distance)
快递行业的兴起慢慢的改变了人们的生活方式,越来越多的人选择了快递的方式。列表LA和列表LB中分别存放了一位快递小哥今年9月份每天送件的单数和行车里程(公里)数,其中数值-1表示该天休息,并未送件。
LA=[90,114,-1,110,178,115,164,155,132,-1,174,153,124,189,110,145,-1,160,180,139,127,129,134,-1,160,178,150,144,145,-1]
LB=[87,163,-1,160,184,155,169,140,129,-1,190,156,141,200,115,150,-1,181,190,147,120,110,120,-1,170,167,144,135,110,-1]
要求:计算并输出9月份该快递小哥出工日每天平均的送件单数和平均的行车里程数,结果保留2位小数。
简单题,注意一下输入格式就行
LA = list(map(int, input().split(',')))
LB = list(map(int, input().split(',')))
valid_LA = [x for x in LA if x != -1]
valid_LB = [x for x in LB if x != -1]
average_LA = sum(valid_LA) / len(valid_LA)
average_LB = sum(valid_LB) / len(valid_LB)
print(f"{average_LA:.2f}")
print(f"{average_LB:.2f}")