当前位置: 首页 > news >正文

2023年12月GESP Python五级编程题真题解析

【五级编程题1】

【试题名称】:小杨的幸运数
问题描述】

小杨认为,所有大于等于a的完全平方数都是他的超级幸运数。

小杨还认为,所有超级幸运数的倍数都是他的幸运数。自然地,小杨的所有超级幸运数也都是幸运数。

对于一个非幸运数,小杨规定,可以将它一直+1,直到它变成一个幸运数。我们把这个过程叫做幸运化。例如,如果a=4,那么4是最小的幸运数,而1不是,但我们可以连续对13+1操作,使其变为4,所以我们可以说,1幸运化后的结果是4

现在,小样给出N个数,请你首先判断它们是不是幸运数;接着,对于非幸运数,请你将它们幸运化。

输入描述】

第一行2个正整数a, N

接下来 行,每行一个正整数 ,表示需要判断(幸运化)的数。

输出描述】

输出N行,对于每个给定的x,如果它是幸运数,请输出“lucky”,否则请输出将其幸运化后的结果。

【数据规模】

对于30%的测试点,保证a,x≤100N≤100

对于60%的测试点,保证a,x≤10⁶

对于所有测试点,保证a≤1,000,001;保证N≤2×10⁵;保证1≤x≤1,000,001

分析】

方法一

x>=a,判是否是完全平方数或完全平方数的倍数,输出“lukey”。如 int(x⁰·⁵)= x⁰·⁵ 则为完全平方数,在Pythonx**0.5//1int(x**0.5)3倍左右;x不是完全平方数,则完全平方数的倍数个数不超过x⁰·⁵,如是整数倍数,则求商是否是完全平方数?

对小于a或不是完全平方数或倍数的,则需要加1至大于等于a,直到是完全平方数或完全平方数的倍数,输出该数。

搜索2个完全平方数的次数不超过2001(2001*2001-2000*2000),找完全平方数倍数不超过x⁰·⁵

时间复杂度:O(n(x⁰·⁵+2001))2×10⁵×(1001+2001)6.1×10⁸,应该不会超时。

完整代码】
a, n = [int(i) for i in input().split()]               # 输入a和n
def p_square(n):                                       # 判完全平方数或其倍数if n**0.5 == n**0.5//1:return Trueelse:for i in range(2,int(x**0.5)+1):               # 倍数不超过int(x**0.5)if x // i == x / i and (x//i)**0.5 == (x//i)**0.5//1:return Trueelse:return False
for i in range(n):                                     # 循环输入并处理n个数x = int(input())                                   # 输入xtf = Falseif x >= a:if p_square(x):                                # 如果是完全平方数或其倍数print('lucky')                             # 输出lucky tf = Trueif not tf:                                         # 如果是则需要加1while True:x += 1if x >= a:if p_square(x):                        # 直到是完全平方数或其倍数print(x)                           # 输出该数break

运行结果】

方法二

先建完全平方数和其倍数表(简称lucky),将可能的数值范围内的完全平方数和其倍数纳入表中,如直接从表的x位置(索引)中找到的数=x,则输出“lucky”,否则输出该数。

因为题目给出a1,000,001N2×10⁵x1,000,001,所以最大的完全平方数不超过1001*1001,故先生成1001*1001+1元素为0的列表,在1~1001的平方大于等于a的位置填上平方数(lucky),并在其倍数位置填上相应倍数值(lucky)。对于0值用后面与其最接近的lucky数填充。输了直接用x作为索引查询,如x作为索引的值是x,则alucky数,输出“lucky”,否则输出x作为索引的值。

时间复杂度:小于O(4x),主要用于建表,1001×1001+1001×2001+2×10⁵<3.3×10⁶

完整代码】

a, n = [int(i) for i in input().split()]         # 输入a和n
max_ly = 1001 * 1001                             # 最大的lucky数不超过此数,x≤1000001
nr_ly = [0 for i in range(max_ly + 1)]           # 生成max_ly+1个元素为0的列表
for i in range(1, int(max_ly**0.5)+1):if i*i >= a:                                 # 大于等于a的完全平方数元素位置填入此数nr_ly[i*i] = i*ifor j in range(i*i + i*i, max_ly, i*i):  # 其倍数元素位置也填入其倍数nr_ly[j] = j
for i in range(max_ly, 0, -1):                   # 两个lucky数之间最近的lucky数是后面的数if not nr_ly[i]:                             # 如i是lucky数则有值,否则为0nr_ly[i] = nr_ly[i + 1]                  # 0值则填入其后面的数(最接近的lucky数)
for i in range(n):                               # 输入n个xx = int(input())                             # 输入xif nr_ly[x] == x:                            # 如果x是lucky数输出“lucky”print("lucky")else:print(nr_ly[x])                          # 否则输出最接近的lucky数(即x+1至lucky数)

运行结果】

【五级编程题2】

【试题名称】烹饪问题
问题描述】

N种食材,编号从0N-1,其中第i种食材的美味度为ai

不同食材之间的组合可能产生奇妙的化学反应。具体来说,如果两种食材的美味度分别为xy,那么它们的契合度为x and y

其中,and运算为按位与运算,需要先将两个运算数转换为二进制,然后在高位补足 ,再逐位进行与运算。例如,126的二进制表示分别为11000110,将它们逐位进行与运算,得到0100,转换为十进制得到4,因此12 and 6 = 4。在 C++ Python 中,可以直接使用 & 运算符表示与运算。

现在,请你找到契合度最高的两种食材,并输出它们的契合度。

输入描述】

第一行一个整数N,表示食材的种数。

接下来一行N个用空格隔开的整数,依次为a0,…, aN-1,表示各种食材的美味度。

【输出描述】

输出一行一个整数,表示最高的契合度。

【数据规模】

40%的测试点保证N≤1,000

对所有测试点保证N≤10⁶0≤ai≤2,147,483,647(2³¹-1)

分析】

方法一

由于0≤ai≤2,147,483,647,所以(ai & aj)ij0,因此结果最大值的初值可定义为0。因为ai & aj = aj & ai,先取第1个与其它N-1个数进行按位与运算,如大于结果就赋给结果(求两数按位与的最大值),再取第2个与其后N-2个数进行按位与运算,如大于结果就赋给结果(求两数按位与的最大值),以此类推,直到所有数据都计算并比较大小。此解法时间复杂度为O(N²),可以解决40%多的数据,当N10⁴就可能超时。

【完整代码】
n = int(input())                                  # 输入n
a = [int(i) for i in input().split()]             # 输入n个食材的美味度
ans = 0                                           # 初值为0
for i in range(n-1):                              # 0≤i<n-1for j in range(i+1,n):                        # i+1≤j<nif a[i] & a[j] > ans:                     # a的下标为1~n-1ans = a[i] & a[j]                     # ans为两种食材的美味度的最大值
print(ans)                                        # 输出结果

运行结果】

方法二

因为ai≤2,147,483,647(2³¹-1),最多31位二进制,从最高位开始枚举,时间复杂度O(31N),可以解决所有数据,不超时。

【完整代码】

n = int(input())                                      # 输入n
a = [int(i) for i in input().split()]                 # 输入n个食材的美味度
ans = 0
for i in range(30,-1,-1):                             # 从最高位开始枚举ans += 2**i                                       # 加上当前二进制位为1cnt = 0                                           # 统计数量for j in range(n):                                # 遍历所有数if (ans & a[j] == ans):cnt += 1if cnt < 2:                                       # 两个以下ans -= 2**i                                   # 这一位为0(原加1,现减去1)
print(ans)                                            # 输出结果

运行结果】

相关文章:

2023年12月GESP Python五级编程题真题解析

【五级编程题1】 【试题名称】&#xff1a;小杨的幸运数 【问题描述】 小杨认为&#xff0c;所有大于等于a的完全平方数都是他的超级幸运数。 小杨还认为&#xff0c;所有超级幸运数的倍数都是他的幸运数。自然地&#xff0c;小杨的所有超级幸运数也都是幸运数。 对于一个…...

探索Apache Commons Imaging处理图像

第1章&#xff1a;引言 大家好&#xff0c;我是小黑&#xff0c;咱们今天来聊聊图像处理。在这个数字化日益增长的时代&#xff0c;图像处理已经成为了一个不可或缺的技能。不论是社交媒体上的照片编辑&#xff0c;还是专业领域的图像分析&#xff0c;图像处理无处不在。而作为…...

【11】ES6:async/await

一、概念 async/await 是 ES2017&#xff08;ES8&#xff09;的新特性&#xff0c;它是一种基于 Promise 实现的异步编程方式。async/await 也是一种语法糖。 1、async/await 实现了用同步方式来写异步代码&#xff08;promise是链式调用形式写异步代码&#xff09; 2、asyn…...

深入理解Java集合框架

导语&#xff1a; Java集合框架是Java提供的一组用于管理对象的类和接口&#xff0c;它是Java编程中非常重要的一部分。Java集合框架通过提供诸如List、Set、Map等数据结构&#xff0c;为程序员提供了一种方便、高效的管理对象的方式。本文将深入理解Java集合框架&#xff0c;包…...

极智嘉加快出海发展步伐,可靠产品方案获客户认可

2023年&#xff0c;国内本土企业加快出海征程&#xff0c;不少企业在出海发展中表现出了优越的集团实力与创新的产品优势&#xff0c;有力彰显了我国先进的科技研发实力。作为全球仓储机器人引领者&#xff0c;极智嘉&#xff08;Geek&#xff09;也在不断加快出海发展步伐&…...

运动目标检测方法的概述

目录 ① 光流法 ② 帧差法 ③ 背景差分法 ④ 混合高斯模型法 ⑤ 总结 运动目标检测技术的应用十分的广泛&#xff0c;尤其是在智能视频监控领域。运动目标检测为后续的图像处理等操作提供了基础&#xff0c;在某种程度上&#xff0c;决定了整个系统的性能。运动目标检测&a…...

【Qt-Edit】

Qt编程指南 ■ QTextEdit■ QLineEdit■ QLineEdit 设置正则表达式■ QPlainTextEdit■ QKeySequenceEdit■ QList<QLineEdit *> edits■■■ QTextEdit /* 实例和对象,设置位置和显示大小 */ textEdit = new QTextEdit(this)...

vue data变量不能以“_”开头,否则会产生很多怪异问题

1、 比如给子组件赋值&#xff0c;子组件无法得到这个值&#xff08;也不是一直无法得到&#xff0c;设置后this.$forceUpdate() 居然可以得到&#xff09;&#xff0c; 更无法watch到 <zizujian :config"_config1"> </zizujian>this._config1 { ...…...

解释RestFUL API,以及如何使用它构建web程序

RESTful API&#xff08;Representational State Transfer&#xff09;是一种基于网络的软件架构风格&#xff0c;用于构建分布式系统。它利用 HTTP 协议中的各种方法&#xff08;如 GET、POST、PUT、DELETE&#xff09;来对资源进行操作&#xff0c;使得不同应用程序能够相互通…...

文件下载输出zip文件

文件下载输出成zip文件&#xff1a; 1、前端整个按钮&#xff0c;调js方法&#xff1a;&#xff08;参数&#xff1a;param,需要下载的id&#xff0c;用逗号拼接&#xff09; var param "?dto.id";//需要自己拼接param window.location.href "<%basePat…...

构建高效数据流转的 ETL 系统:数据库 + Serverless 函数计算的最佳实践

作者&#xff1a;柳下 概述 随着企业规模和数据量的增长&#xff0c;数据的价值越来越受到重视。数据的变化和更新变得更加频繁和复杂&#xff0c;因此及时捕获和处理这些变化变得至关重要。为了满足这一需求&#xff0c;数据库 CDC&#xff08;Change Data Capture&#xff…...

鸿蒙开发(二)- 鸿蒙DevEco3.X开发环境搭建

上篇说到&#xff0c;鸿蒙开发目前势头旺盛&#xff0c;头部大厂正在如火如荼地进行着&#xff0c;华为也对外宣称已经跟多个厂商达成合作。目前看来&#xff0c;对于前端或客户端开发人员来说&#xff0c;掌握下鸿蒙开发还是有些必要性的。如果你之前是从事Android开发的&…...

Openslide安装

文章目录 安装open-slide python下载openslide二进制文件解压到Anaconda的library目录下配置环境变量在py文件中添加以下语句即可 官网链接 安装open-slide python 表面上这样就可以导入了但事实上会遇到 Couldn’t locate OpendSlide DLL的问题&#xff0c;openslide必须独立安…...

【ES】Elasticsearch常见问题与解决(持续更新)

目录 Elasticsearch常见问题 1. 集群健康问题 2. 性能问题 3. 映射问题 4. 分片问题 5. 内存问题 6. 硬件问题 7. 配置问题 8. 安全问题 9. 网络问题 10. 版本不兼容 Elasticsearch日常使用小结 【Q】离线告警&#xff0c;有IP已离线 【Q】统计某个应用的某个索引…...

2023.12.29 Python面向对象 封装_继承_多台

目录 1.封装-私有与公开权限 2.继承 2.1多继承 2.2继承多层传递 2.3重写父类方法 2.4继承链 2.5禁止私有继承 3.多态 4.总结 1.封装-私有与公开权限 公开属性、公开方法&#xff1a;随便调用 私有属性、私有方法&#xff1a; 只能在类定义的内部调用 以两个下划线开头__的…...

通过自然语言处理增强推荐系统:协同方法

一、介绍 自然语言处理 (NLP) 是人工智能的一个分支&#xff0c;专注于使机器能够以有意义且有用的方式理解、解释和响应人类语言。它包含一系列技术&#xff0c;包括情感分析、语言翻译和聊天机器人。 另一方面&#xff0c;推荐系统&#xff08;RecSys&#xff09;是旨在向用户…...

大创项目推荐 深度学习OCR中文识别 - opencv python

文章目录 0 前言1 课题背景2 实现效果3 文本区域检测网络-CTPN4 文本识别网络-CRNN5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于深度学习OCR中文识别系统 ** 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;…...

Python经典游戏 唤醒你童年记忆

这些游戏你玩过几个&#xff1f; 1.贪吃蛇2.吃豆人3.加农炮4.四子棋5. Fly Bird<font color #f3704ab>6.记忆&#xff1a;数字对拼图游戏&#xff08;欢迎挑战&#xff01;用时&#xff1a;2min&#xff09;7.乒乓球8.上课划水必备-井字游戏&#xff08;我敢说100%的人都…...

什么是骨传导耳机?骨传导能保护听力吗?

骨传导耳机是一种非常特殊的蓝牙耳机&#xff0c;它通过骨传导技术将声音直接传送到内耳。这种技术不同于传统耳机&#xff0c;它不通过空气传送声音&#xff0c;而是通过头骨的振动来传送声音。 并且骨传导耳机能够在一定程度上起到保护听力的作用&#xff0c;主要是因为它们不…...

使用electron属性实现保存图片并获取图片的磁盘路径

在普通的网页开发中&#xff0c;JavaScript由于安全性的考虑&#xff0c;通常是无法直接获取到客户端的磁盘路径的。浏览器出于隐私和安全原因对此类信息进行了限制。 在浏览器环境下&#xff0c;JavaScript主要通过Web APIs来与浏览器进行交互&#xff0c;而这些API通常受到浏…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)

一、OpenBCI_GUI 项目概述 &#xff08;一&#xff09;项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台&#xff0c;其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言&#xff0c;首次接触 OpenBCI 设备时&#xff0c;往…...

热烈祝贺埃文科技正式加入可信数据空间发展联盟

2025年4月29日&#xff0c;在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上&#xff0c;可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞&#xff0c;强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...

学习 Hooks【Plan - June - Week 2】

一、React API React 提供了丰富的核心 API&#xff0c;用于创建组件、管理状态、处理副作用、优化性能等。本文档总结 React 常用的 API 方法和组件。 1. React 核心 API React.createElement(type, props, …children) 用于创建 React 元素&#xff0c;JSX 会被编译成该函数…...

day51 python CBAM注意力

目录 一、CBAM 模块简介 二、CBAM 模块的实现 &#xff08;一&#xff09;通道注意力模块 &#xff08;二&#xff09;空间注意力模块 &#xff08;三&#xff09;CBAM 模块的组合 三、CBAM 模块的特性 四、CBAM 模块在 CNN 中的应用 一、CBAM 模块简介 在之前的探索中…...