2021全国高校计算机能力挑战赛程序设计赛Python组区域赛(初赛)试题及部分个人解答

2020全国高校计算机能力挑战赛程序设计赛Python组区域赛(初赛)试题及参考解答

  • 前言
  • 赛题&代码
    • 1 投石饮水
      • 分析
      • 代码
    • 2 学科竞赛
      • 分析
      • 代码
    • 3 集合位置
      • 分析
      • 代码
    • 4 产品质量抽查
      • 分析
      • 代码

前言

我一整个人麻了,本来大题第一题很简单,结果一开始主办方把题目输出示例给打错了,浪费了我好多时间(可能这种bzg的比赛就是这样的吧…)

赛题&代码

1 投石饮水

2021全国高校计算机能力挑战赛程序设计赛Python组区域赛(初赛)试题及部分个人解答_第1张图片

分析

代码

m, n= map(int,input().split()) # m为容器底边边长,n为容器内水面距离瓶口的距离
StoneV = 0 # 通过投石子而“取代”的水的体积/投入的石子的总体积
num = 0 # 石子数量
S = m**2 # 容器底面积(正方形)
V = n*(m**2) # 填满容器需要的水的体积
while V-StoneV > 2*S:
    initV += 8
    num +=1
print(num)

2 学科竞赛

2021全国高校计算机能力挑战赛程序设计赛Python组区域赛(初赛)试题及部分个人解答_第2张图片
输入样例:
8 I
2021001 90 90 85 90 80 80
2021002 95 96 82 90 85 83
2021003 90 95 85 90 80 82
2021004 90 89 90 90 70 80
2022001 90 95 80 90 82 70
2022004 90 90 80 90 77 80
2022002 90 89 80 90 80 83
2022003 90 90 80 90 79 80
输出样例:
2101003

分析

代码

N, C= map(str,input().split())
listGrades = []
for i in range(N):
    tmp = input()
    listGrades.append((tmp.split()[0], tmp.split()[1], tmp.split()[2], tmp.split()[3], tmp.split()[4], tmp.split()[5], tmp.split()[6]))
pointList = []
for i in listGrades:
    if C == "B":
        pointList.append((i[0],int(i[2])+int(i[4])))
    elif C == "I":
        pointList.append((i[0],int(i[1])+int(i[2])))
    elif C == "H":
        pointList.append((i[0],int(i[5])+int(i[6])))
pointList.sort(key=lambda x:x[1],reverse=True)
for i in pointList:
    print(i[0], end='  ')

(待改进)

3 集合位置

2021全国高校计算机能力挑战赛程序设计赛Python组区域赛(初赛)试题及部分个人解答_第3张图片

分析

代码

4 产品质量抽查

2021全国高校计算机能力挑战赛程序设计赛Python组区域赛(初赛)试题及部分个人解答_第4张图片
输入样例:
10 2 6
101111
111111
111111
101010
111011
111110
111111
111110
111011
111111
输出样例:
12

分析

代码

你可能感兴趣的:(python,全国高校计算机能力挑战赛)