2022-2023全国高校计算机能力挑战赛区域赛python组编程题

news2024/12/26 14:07:09

mi目录

2022

1.

2.

1. 使用 format() 方法

2. 使用 f-string(Python 3.6 及以上)

2023

1.

2.

3.

4


闽农大宝玲楼

2022

1.

1.某动物研究员给动物园的动物们定了一个园区幸福值,其中园区幸福值的计算为一个园区内“所有动物的活动时间总和”乘上“所有动物中最小的食量”。现在新引进了n只动物,园长准备建一个包含k只动物的“最幸福动物园区”,
如果从这n只动物中选择k只动物进入该园区,请问该园区的最高幸福值是多少?
输入格式:
第一行输入两个整数n,k,分别表示新引进的n只动物,与需要挑选的k只动物。(1 <= k <= n < 1000)
第二行输入n只动物各自的活动时间,以空格间隔。(1 <= <= 1000,单位分钟)
第三行输入n只动物各自的食量,以空格间隔。(1 <= <= 10000,单位克)
输出格式:
输出一个整数表示这k只动物的最大幸福值。2
输入样例1:

6 2
2 10 3 1 5 8
5 4 3 9 7 2

输入样例2:

10 4
2 10 3 1 5 8 6 9 10 4
5 4 3 9 7 2 4 5 2 1

输出样例1:
60
说明:选择第二只动物与第五只动物,幸福值为60

输出样例2:
120

非常baby难度的一题,对于这种没有复杂度要求的比赛,大胆利用好python的特有功能

求组合数的库。这题我的思路是把从n中抽取k个,我们可以先抽取索引值,然后根据索引值找时间和食量。

from itertools import combinations
input_data=list(map(int,input().split()))
n=input_data[0]
k=input_data[1]
t=list(map(int,input().split()))
e=list(map(int,input().split()))
x=[]
comb=list(combinations(range(n),k))
m=len(comb)
v=[]
tsum=0 #注意清零
flag=[]
for com in comb:
    tsum=0
    v=[] #同样的,注意清零
    for j in com:
        tsum+=t[int(j)]
        v.append(e[int(j)])
    ex=min(v)
    flag.append(tsum*ex)
result=max(flag)
print(result)

2.

快递行业的兴起慢慢的改变了人们的生活方式,越来越多的人选择了快递的方式。列表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位小数。
输出格式:平均每天送件单数: ** *.**, 平均每天行车里程数: ** *.** (说明,输出字符串,精度为两位小数)
a=[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]
b=[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]
for i in range(len(a)):
    if i>=len(a):
        break
    if a[i]==-1:
        a.remove(a[i])
        b.remove(b[i])
x=sum(a)
t=len(a)
y=sum(b)
m=x/t
n=y/t
print("平均每天送件单数:""{:.2f}".format(m),",","平均每天行车里程数:","{:.2f}".format(n))

注意一下保留两位小数的写法,我这边是一种

1. 使用 format() 方法

number = 3.14159
formatted_number = "{:.2f}".format(number)
print(formatted_number)  # 输出: 3.14
2. 使用 f-string(Python 3.6 及以上)
number = 3.14159
formatted_number = f"{number:.2f}"
print(formatted_number)  # 输出: 3.14
给定两个正整数m、n(1<=m < n<=1000),请找出区间[m, n]中阿拉伯数字0~9出现的次数。比如[10, 12],0出现了1次,1出现了4次,2出现了1次,其余都是0次,输出时省略出现0次的数字。
输入格式: 
一行m与n两个正整数,空格间隔
输出格式:  按照0~9的顺序,每行单独输出每个数字出现的次数,数字与出现次数之间用冒号间隔
#输入样例1:
10 13
 输入样例2:
10 999

简单,就是把每次把个位取下来。

f=[0]*10
input_data=list(map(int,input().split()))
m=input_data[0]
n=input_data[1]

for i in range(m,n+1):
    j=i
    while(j):
        f[j%10]+=1
        j//=10
for i in range(10):
    if(f[i]!=0):
        print(f"{i}:{f[i]}")

注意j//10一定是整数除法

2023

1.

题目描述
小明在玩进阶版大富翁, 进阶版大富翁有特殊的步数计算方法。小明每次可以走的步数由一个公式决定。公式每个部分可以是一个整数或者一次数字抽奖 nds 。nds 表示, 在1到 s 中的整数中, 可以抽取 n 次,结果是你 n 次结果的和。总步数就是整个式子的结果。
如1+2d3,代表的就是1+2次在1到3之间抽取数字的结果。
结果最小值为三, 最大值为七。
现在题目中会给你一个字符串 s 表示步数的计算公式, 请你编写代码, 帮小明计算一下, 他可以走的步数的期望值是多少? (结果如果不是整数, 那么保留一位小数)。
输入输出格式
输入格式
一个字符串 s。
输出格式
一个整数。
输入输出样例1
输入
1+2d3
输出 5

利用python的异常检测。

然后就是期望值这里我们可以推导一下

\sum \frac{x_{i}}{s}=\frac{s+1}{2}

x=0
y=0
z=0
s=list(input().split('+'))
for i in range(len(s)):
    try:
        x+=int(s[i])

    except ValueError:
        y+=int(s[i][0])*int(s[i][2])
        z+=int(s[i][0])
sum=x+(y+z)//2
print(sum)

2.

给定两个字符串 text1 和text2,返回这两个字符串的最长公共子序列的长度。如果不存在公共子序列, 返回0。一个字符串的子序列是指这样一个新的字符串: 它是由原字符串在不改变字符的相对顺序的情况下删除某些字符 
(也可以不删除任何字符) 后组成的新字符串。
例如, ace 是 abcde 的子序列, 但 aec 不是 abcde 
的子序列。
两个字符串的公共子序列是这两个字符串所共同拥有的子序列。
输入格式
字符串。
输出格式
字符串。
输入/输出样例
输入1
lijiji,ijijij
输出1
4
说明/提示
· text1 和 text2 仅由小写英文字符组成。

可以考虑用动态规划,也可以求组合来解

from itertools import combinations
def getn(s):
    m=[]
    for i in range(len(s)+1):
        coms=list(combinations(s,i))
        for com in coms:
            m.append(''.join(com))
    return m
input_data=input().split(',')
s1=input_data[0]
s2=input_data[1]
str1=getn(s1)
str2=getn(s2)
num=[]
for st in str1:
    if st in str2:
        num.append(len(st))
if num:
    numx=sorted(num)
    print(numx[-1])
else:
    print(0)

 动态规划做法

input_data=input().split(',')
a=input_data[0]
b=input_data[1]
l1=len(a)
l2=len(b)

f=[[0]*(l2+1) for _ in range(l1+1)]
for i in range(1,l1+1):
    for j in range(1,l2+1):
        if a[i-1]==b[j-1]:
            f[i][j]=f[i-1][j-1]+1
        else:
            f[i][j]=max(f[i][j-1],f[i-1][j])
print(f[l1-1][l2-1])

3.

题目描述
左截断素数是不包含0 位的素数, 当连续删除第一个数字时, 结果始终为素数。
可右截断的素数是不包含 0位的素数, 当连续删除最后一位时, 结果始终为素数。
创建一个将整数作为参数的函数, 并且:
如果整数只是一个可左截断的素数, 则返回“left”。
如果整数只是一个可右截断的素数, 则返回“right”。
如果整数是两者, 则返回“both”。
否则, 返回 False。
输入输出格式
输入格式
输入一个整数;
输出格式
输出一个字符串, 表示输入整数的素数类型。
输入输出样例1
输入
9137
输出
left
解释 (可选)
因为 9137 137 37 7 都是质数。
输入输出样例2
输入
5939
输出
right
解释 (可选)
因为5939 593 59和5都是素数。
说明提示
输入整数不会超过10⁶,

利用好截断

def is_prime(n):

    if n <= 1:
        return False
    if n <= 3:
        return True
    if n % 2 == 0 or n % 3 == 0:
        return False
    for i in range(5, int(n ** 0.5) + 1, 6):
        if n % i == 0 or n % (i + 2) == 0:
            return False
    return True


def left_truncatable_prime(n):
    
    str_n = str(n)
    for i in range(len(str_n)):
        if not is_prime(int(str_n[i:])):  
            return False
    return True


def right_truncatable_prime(n):

    str_n = str(n)
    for i in range(len(str_n)):
        if not is_prime(int(str_n[:len(str_n) - i])):  
            return False
    return True


def truncatable_prime_type(n):
   
    is_left = left_truncatable_prime(n)
    is_right = right_truncatable_prime(n)

    if is_left and is_right:
        return "both"
    elif is_left:
        return "left"
    elif is_right:
        return "right"
    else:
        return False


num = int(input())
result = truncatable_prime_type(num)
print(result)
"""


4

最近, 小明去了一个古老的国家。在之前很长的时间里, 它都是世界上最富有、最强大的王国。因此, 这个国家的人民仍然非常自豪, 即使当他们的国家不再那么富有。
这个国家的商人每个人只卖一件商品, 
每件商品具有一定价值, 但如果你的钱低于一定金额, 他们会拒绝与你进行交易。
如果小明有一定单位的钱, 小明能得到的最大商品价值是多少?
输入输出格式
输入格式
第一行包含两个整数 N,M, 分别表示商品的数量和初始总金额。
接下来输入 N 行, 每行包含三个数字 P,Q,V, 分别表示每件商品的价格, 交易底线金额和商品的价值。
数字之间以空格间隔。
输出格式
针对输入, 打印出能得到的最大商品价值。
输入输出样例1
输入
2 10
10 15 10
5 10 5
输出
5

动态规划的背包问题n



input_data = list(map(int, input().split()))
n = input_data[0]  
m = input_data[1]  


p = [[0] * 4 for _ in range(n + 1)]  
f = [[0] * (m + 1) for _ in range(n + 1)]  


for i in range(1, n + 1):
    p[i] = list(map(int, input().split())) 

for i in range(1, n + 1):
    for j in range(0, m + 1):  # j 从 0 到 m
        if j < p[i][0]:  
            f[i][j] = f[i - 1][j] 
        elif j>p[i][0]:
            
            f[i][j] = max(f[i - 1][j], f[i - 1][j - p[i][0]] + p[i][2])
        else:
            f[i][j]=f[i-1][j]

print(f[n][m])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2241060.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在Element Ui中支持从系统粘贴版中获取图片和PDF,Docx,Doc,PPT等文档

在上一篇中&#xff0c;我们单纯的实现了Ctrl V实现从粘贴版中获取图片信息&#xff0c;但是点击上传的时候会有个bug&#xff0c;就是点击文件上传的时候&#xff0c;会出现一个bug&#xff0c;这篇&#xff0c;我们将在上一篇的基础上进行完善&#xff0c;并支持从粘贴版中获…

【Android学习】2024最新版Android Studio安装与配置

准备工作 Windows系统的要求 一、下载 Android Studio官网&#xff1a;https://developer.android.google.cn/studio?hlen 今天是2024年9月27日&#xff0c;Android Studio已经更新到了Koala版本 直接下载 二、安装 笔者当前环境变量中配置的JDK版本为1.8 双击.exe文件运行…

如何解决JAVA程序通过obloader并发导数导致系统夯住的问题 | OceanBase 运维实践

案例背景 某保险机构客户的数据中台&#xff0c;自系统上线后不久&#xff0c;会定期的用 obload 工具从上游业务系统导入数据至OceanBase数据库。但&#xff0c;不久便遇到了应用服务器的 Memory 与 CPU 资源占用持续攀升&#xff0c;最终导致系统夯住而不可用的异常。 memo…

2分钟在阿里云ECS控制台部署个人应用(图文示例)

作为一名程序员&#xff0c;我有大量的个人代码和应用托管在Github/Gitee这些代码仓库。当我想要部署这些代码到我的阿里云ECS服务器时&#xff0c;往往会很麻烦&#xff0c;主要问题有这些&#xff1a; 需要手动安装和配置git&#xff0c;过程非常繁琐。每次都需要登录到机器…

Oracle XE命令行创建数据库的一波三折(已解决)

这是一个目录 前言创建预备创建一、创建配置文件指定控制文件路径二、使用命令行创建数据库三、初始化数据库四、创建服务五、配置监听 Oracle XE尾声 前言 这篇文章是我在误装了oracle xe&#xff08;精简版数据库&#xff09;后有感而写&#xff0c;对于xe的具体区别将在文末…

第四十一章 Vue之初识VueX

目录 一、引言 1.1. vuex的概念 1.2. vuex使用场景 1.3. 优势 二、创建演示项目 2.1. 构建项目步骤 2.2. 项目最终生成结构 2.3. 创建项目文件 2.3.1. App.vue 2.3.2. Son1.vue 2.3.3. Son2.vue 三、创建一个空仓库 3.1. 安装vuex 3.2. 新建仓库 3.3. 挂载仓库…

机器学习-35-提取时间序列信号的特征

文章目录 1 特征提取方法1.1 特征提取过程1.2 两类特征提取方法2 基于数据驱动的方法2.1 领域特定特征提取2.2 基于频率的特征提取2.2.1 模拟信号2.2.2 傅里叶变换2.2.3 抽取最大幅值对应特征2.2.4 抽取峰值幅值对应特征2.3 基于统计的特征提取2.4 基于时间的特征提取3 参考附录…

My_SQL day3

知识点&#xff1a;约束 1.dafault 默认约束 2.not null 非空约束 3.unique key 唯一约束 4.primary key 主键约束 5.anto_increment 自增长约束 6.foreign key 外键约束 知识点&#xff1a;表关系 1.一对一 2.一对多 3.多对多 知识点&#xff1a;约束 1.default 默认约束 …

caozha-CEPCS(新冠肺炎疫情防控系统)

caozha-CEPCS&#xff0c;是一个基于PHP开发的新冠肺炎疫情防控系统&#xff0c;CEPCS&#xff08;全称&#xff1a;COVID-19 Epidemic Prevention and Control System&#xff09;&#xff0c;可以应用于单位、企业、学校、工业园区、村落等等。小小系统&#xff0c;希望能为大…

深度学习推荐系统的工程实现

参考自《深度学习推荐系统》——王喆&#xff0c;用于学习和记录。 介绍 之前章节主要从理论和算法层面介绍了推荐系统的关键思想。但算法和模型终究只是“好酒”&#xff0c;还需要用合适的“容器”盛载才能呈现出最好的味道&#xff0c;这里的“容器”指的就是实现推荐系统…

2024 年(第 7 届)“泰迪杯”数据分析技能赛B 题 特殊医学用途配方食品数据分析 完整代码 结果 可视化分享

一、背景特殊医学用途配方食品简称特医食品&#xff0c;是指为满足进食受限、消化吸收障碍、代谢素乱或者特定疾病状态人群对营养素或者膳食的特殊需要&#xff0c;专门加工配置而成的配方食品&#xff0c;包括0月龄至12月龄的特殊医学用途婴儿配方食品和适用于1岁以上的特殊医…

Ubuntu 的 ROS 2 操作系统安装与测试

引言 机器人操作系统&#xff08;ROS, Robot Operating System&#xff09;是一种广泛应用于机器人开发的开源框架&#xff0c;提供了丰富的库和工具&#xff0c;支持开发者快速构建、控制机器人并实现智能功能。 当前&#xff0c;ROS 2 的最新长期支持版本为 Humble Hawksbil…

SQL面试题——奔驰SQL面试题 车辆在不同驾驶模式下的时间

SQL面试题——奔驰SQL面试题 我们的表大致如下 CREATE TABLE signal_log( vin STRING COMMENTvehicle frame id, signal_name STRING COMMENTfunction name, signal_value STRING COMMENT signal value , ts BIGINT COMMENTevent timestamp, dt STRING COMMENTformat yyyy-mm…

pytest执行用例时从conftest.py抛出ModuleNotFoundError:No module named ‘XXX‘异常的解决办法

网上各种各样的&#xff1a;1、关于_pycache_影响conftest的&#xff1b;2、目录路径的&#xff1b;3、配置环境的&#xff1b; 4、发现自己是powershell后&#xff0c;设置环境&#xff1a; $env:environment"local" 仍然报错的&#xff1a;5、最后发现是自己的 …

JAVA:探索 EasyExcel 的技术指南

1、简述 在 Java 开发中&#xff0c;Excel 文件的读写操作是一项常见的需求。阿里巴巴开源的 EasyExcel 提供了一种高效、简洁的解决方案&#xff0c;特别是在处理大规模数据时表现尤为突出。本文将详细介绍 EasyExcel 的优缺点、应用场景&#xff0c;并通过实例展示其基本用法…

Python自动化小技巧24——实现自动化输出模板表格报告

背景 很多人拿到数据excel文件&#xff0c;然后要写报告&#xff0c;做表格&#xff0c;要各种计算&#xff0c;各种排序&#xff0c;分组聚合&#xff0c;数据透视&#xff0c;然后合并单元格&#xff0c;添加边框&#xff0c;加粗&#xff0c;添加显示规则&#xff0c;添加数…

C# 通俗易懂的介绍基础知识(七)——栈Stack(从日常生活开始讲解)

目录 一、前言 二、栈是排列方式 三、栈的单词 四、程序中的栈 五、栈的方法 1.声明并初始化栈 2.往栈里放东西&#xff08;学名&#xff1a;入栈&#xff09; 3.从栈往外拿东西 &#xff08;学名&#xff1a;出栈&#xff09; 4.清空栈 5.遍历 Stack 6.获取Stack的长…

Vue全栈开发旅游网项目(10)-用户管理后端接口开发

1.异步用户登录\登出接口开发 1.设计公共响应数据类型 文件地址&#xff1a;utils/response404.py from django.http import JsonResponseclass BadRequestJsonResponse(JsonResponse):status_code 400def __init__(self, err_list, *args, **kwargs):data {"error_c…

PostgreSQL中如果有Left Join的时候索引怎么加

在PostgreSQL中&#xff0c;当你的查询包含多个LEFT JOIN和WHERE条件时&#xff0c;合理地添加索引可以显著提高查询性能。以下是一些具体的优化步骤和建议&#xff1a; 1. 分析查询 使用 EXPLAIN ANALYZE 命令分析你的查询&#xff0c;了解查询的执行计划&#xff0c;识别出连…

A027-基于Spring Boot的农事管理系统

&#x1f64a;作者简介&#xff1a;在校研究生&#xff0c;拥有计算机专业的研究生开发团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339; 赠送计算机毕业设计600…