首页 > 编程语言 >21年计算机挑战赛Python组区域赛题目及个人解答(重置版)

21年计算机挑战赛Python组区域赛题目及个人解答(重置版)

时间:2024-10-12 21:18:13浏览次数:3  
标签:count 21 Python list List3 marks print 挑战赛 total

1.乌鸦喝水

代码部分

# 计算机挑战赛--乌鸦喝水
x = int(input('请输入底边的边长:\n'))
y = int(input('请输入容器内水面距离瓶子口的距离:\n'))
z = 0
while 1:
    if x*x*y - 8*z < 2*x*x:
        print(f'需要投放{z}个石子乌鸦才能喝到水')
        break
    else:
        z = z + 1

2.竞赛学科分配

代码部分

# 计算机挑战赛--学科竞赛
people = int(input('输入想要参赛的人数:\n'))
subject = input('想要参加选拔的科目:\n')
list = [];total = 0;marks = [];
for i in range(people):
    id,g1,g2,g3,g4,g5,g6 = map(int,input().split())
    list.extend([[id,g1,g2,g3,g4,g5,g6]])
if subject == 'I':
    for i in range(people):
        List = list[i]
        x = List[2]
        y = List[3]
        new_total = x + y
        marks.append(new_total)
    count = marks.count(max(marks))
    if count == 1:
        List1 = list[marks.index(max(marks))]
        print(List1[0])
    else:
        List3 = []
        position = [index for index,value in enumerate(marks) if value == max(marks)]
        print(position)
        for i in position:
            List2 = list[i]
            List3.append(List2[0])
        List3.sort()
        print(List3)
        for i in List3:
            print(i)
if subject == 'B':
    for i in range(people):
        List = list[i]
        x = List[2]
        y = List[4]
        new_total = x + y
        marks.append(new_total)
    count = marks.count(max(marks))
    if count == 1:
        List1 = list[marks.index(max(marks))]
        print(List1[0])
    else:
        List3 = []
        position = [index for index,value in enumerate(marks) if value == max(marks)]
        for i in position:
            List2 = list[i]
            List3.append(List2[0])
        List3.sort()
        for i in List3:
            print(i)
if subject == 'H':
    for i in range(people):
        List = list[i]
        x = List[5]
        y = List[6]
        new_total = x + y
        marks.append(new_total)
    count = marks.count(max(marks))
    if count == 1:
        List1 = list[marks.index(max(marks))]
        print(List1[0])
    else:
        List3 = []
        position = [index for index,value in enumerate(marks) if value == max(marks)]
        for i in position:
            List2 = list[i]
            List3.append(List2[0])
        List3.sort()
        for i in List3:
            print(i)

3.机器人集合位置

代码部分

# 计算机挑战赛--集合位置
list = [];min_power = float('inf');v = 0;count = 1;sum = 0

#给出空列表,用于存储坐标值. 将初始最小能源消耗赋为无穷大,计数器与sum的值赋为0方便下方计算.

K = int(input('输入机器人的总数K(0<K<=100):\n'))
if K <= 0 or K > 100:
    print('错误!请确保K在正确范围之内!')
else:
    for i in range(K):
        x,y = map(int,input(f'输入第{i+1}个坐标值(x,y)(x<=10,y<=1000):\n').split())
        if x < 0 or x > 10 or y < 0 or y > 1000:
            print('错误!请确保(x,y)在正确范围之内!')
            break
        else:
            list.append([x,y])

#将用户输入的坐标值以子列表[]的形式添加到list列表中,形成一个二维列表,方便取用

    for i in list:
        list.remove(i)

#取出list列表中每一个坐标值,并暂时将其从列表中去除

        for o in range(K-1):
            a = abs(list[o][0] - i[0])
            b = abs(list[o][1] - i[1])
            sum = a + b + sum

#将去除后的list列表中的各个坐标依次拿出,并与取出的坐标作差,计算能量值

        if sum <= min_power:
            min_power = sum;sum = 0
        else:
            sum = 0

#如果得到的最小能量sum值小于min_power,将sum赋值给min_power,并将sum重新赋为0

        list.insert(v,i)
        v = v + 1

#将删掉的坐标按照原位返回到list列表中
    if min_power != float('inf'):
        print(min_power)
    else:
        print('出现错误!请检查输入')

4.产品质量抽查

代码部分

# 计算机挑战赛--产品质量抽查
N,M,K = map(int,input().split());list = [];v = 0;sum = 0;count = 0;
for i in range(N):
    list.append(input())
for i in list:
    list.remove(i)
    for o in i:
        if o == '1':
            count = count + 1
    for m in list:
        total = count
        for n in m:
            if n == '1':
                total = total + 1
            if total >= sum:
                sum = total
    count = 0
    list.insert(v,i)
    v = v + 1
print(sum)

标签:count,21,Python,list,List3,marks,print,挑战赛,total
From: https://blog.csdn.net/2301_79373897/article/details/142797232

相关文章

  • Python 潮流周刊#72:Python 3.13.0 最终版已发布!(摘要)
    本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进Python技术,并增长职业和副业的收入。分享了14篇文章,12个开源项目,4则音视频,全文2300字。以下是本期摘要:......
  • 2021年华为杯数学建模竞赛C题论文和代码
    基于神经元Hodgkin-Huxley模型的脑深部电刺激治疗帕金森病的建模研究帕金森病作为一种全球常见的精神退行性疾病,日趋成为中老年人正常生活的一大威胁。目前缓解帕金森病症状的治疗方法主要有三种:药物治疗、手术治疗和脑深度刺激。脑深度刺激作为一种副作用小、安全性高的新方......
  • 2021年华为杯数学建模竞赛D题论文和代码
    抗乳腺癌候选药物的优化建模在研发治疗乳腺癌药物的过程中,能拮抗ERα活性的化合物是治疗乳腺癌的重要候选药物,同时也要考虑到化合物在人体内具备良好的药代动力学性质和安全性(ADMET性质),如果吸收性能、代谢速度、毒副作用等性质不佳,依然很难成为药物。本文对给定的1974个化......
  • 八、Python基础语法(判断语句-下)
    一、ifelifelse结构应用场景:多个判断条件下,并且这些判断条件存在一定的关联。语法:elif也是python中关键字,后面跟一个判断条件,判断条件后面跟冒号存在冒号,需要换行缩进,处于elif缩进中的代码,是eilf代码块。if和多个elif之间,只要有一个条件成立,后续条件不再执行。需......
  • 【python 简易入门应用教程】第一部分:Python 基础
    第一部分:Python基础1.Python简介Python是一种高层次的、解释型的编程语言,由GuidovanRossum于1980年代末发明,并于1991年首次发布。它设计之初的目标是提高代码的可读性和简洁性,采用类似于英语的语法结构。Python的历史与特点历史Python的创始人Guidovan......
  • 【python 简易入门应用教程】第二部分:数据处理与分析
    第二部分:数据处理与分析1.Numpy基础Numpy(NumericalPython)是一个强大的Python库,专为科学计算而设计。它提供了高效的多维数组对象,以及丰富的函数库来操作这些数组。Numpy是数据分析和机器学习项目的基础模块之一,相比于纯Python,其处理大规模数据的效率更高。1.1Numpy......
  • 使用Python爬取免费代理并测试其有效性
    前言在本篇文章中,我们将使用Python编写一个脚本来爬取免费的代理IP地址,并对其进行有效性测试。我们将会用到playwright、aiohttp、pandas等库来完成这个任务。最终我们会得到一个包含有效代理IP地址的列表,并将其保存到本地文件中。1.环境准备首先,你需要确保你的Python环......
  • python统计人的视角(1)——python基础
    3D画图importmatplotlibimportmatplotlib.pyplotaspltimportnumpyasnpfig=plt.figure()ax=fig.add_subplot(111,projection="3d")x=np.arange(-10,10,0.5)y=np.arange(-10,10,0.5)X,Y=np.meshgrid(x,y)Z=X**2+Y**2ax.plot_wireframe(X,Y,......
  • P9021 [USACO23JAN] Subtree Activation P
    P9021[USACO23JAN]SubtreeActivationP这种看上去就很不常规的东西不用想着怎么构造最佳方案,这条路一定是行不通的,考虑转化题意。考虑变化的实质只有两种:全\(0\)状态和\(x\)子树全满的状态转化;\(x\)子树全满和\(y\)子树全满的状态转化,其中\(x,y\)有边。这样的状态转......
  • QD1-P21-P22 CSS 基础语法、注释、使用方法
    本节学习:CSS基础语法和注释,以及如何使用CSS定义的样式。本节视频https://www.bilibili.com/video/BV1n64y1U7oj?p=21CSS基本语法CSS(层叠样式表)的基本语法相对简单,由选择器和一组包含在花括号{}​中的声明组成。​​组成部分:选择器选择器用于指定你想要样式化......