Pat乙级1030题—— 完美数列(Python)

PAT 1030 完美数列 python (无超时) 1030 完美数列(25)(25 分) 给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M <= m * p,则称这个数列是完美数列。 现在给定参数p和一些正整数,请你从中选择尽可能多的数构成一个完美数列。 输入格式: 输入第一行给出两个正整数N和p,其中N(<= 10^5^)是输入的正整数的个数,p(<= 10^9^)是给定的参数。第二行给出N... 阅读详情

注意

  • 完美数列不一定要从给出的数列最小的一项开始,而是找尽可能的包含最多数的完美数列。

  • 这个代码用python2实现会出现一个测试点超时,用python3没有问题。

代码如下

# -*- coding: UTF-8 -*-

def perfectSequence():
    N, q= map(int, input().split())
    numList = sorted(map(int, input().split()))
    count = 0 ##存放完美数列最大长度
    for i in range(N):
        mp = numList[i] * q
        nextRange = i + count ##将完美数列往后挪一位,看是否可得到更长的完美数列
        if nextRange >= N:  ##超出给出的数列范围
            break
        for j in range(nextRange, N):
            if mp >= numList[j]:  ##验证新的完美数列是否可以比之前更长
                count += 1
            else:
                break
    print (count)

if __name__ == '__main__':
    perfectSequence()

测试结果

这里写图片描述

PAT (Basic Level) Practice 乙级1021-1030 PAT (Basic Level) Practice 乙级合集1021-1030 阅读详情

相关推荐

PAT乙级【Java题解合集】

学习完本专栏后,leetcode的简单题应该是没啥问题了,可以去做甲级的题目或者leetcode中等以上难度的题目继续修炼,后续博主会整理并更新算法修炼专栏,欢迎您的订阅!👉🏻算法修炼专栏👈🏻。

2401_89224755的博客 1246

每日一题——Python实现PAT乙级1030 完美数列(举一反三+思想解读+逐步优化)五千字好文

这段代码有效地使用了双指针算法来解决问题,通过排序简化了问题的处理。时间复杂度主要受排序影响,而空间复杂度相对较低。代码结构清晰,逻辑明确,是一个良好的算法实现。这个优化版本的代码通过避免排序和使用哈希表来存储元素位置,将时间复杂度从O(N log N)降低到O(N),同时保持了空间复杂度为O(N)。这是一个更高效的解决方案,特别是在处理大规模数据时。

weixin_44915521的博客 929

PAT乙级 (Basic Level) 目录【Python解】已完结至1125

计算机编程能力考试(Programming Ability Test,简称PAT)是由。旨在培养和展现学生分析问题、解决问题和计算机程序设计的能力,计算机程序设计人才,并为企业选拔人才提供。

新时代先锋的博客 1773

PAT乙级 1030 完美数列 python

PAT乙级 1030 完美数列 python

m0_43424109的博客 277

PAT乙级python编程练习(六)

PAT乙级python编程练习(六) PAT乙级python编程练习(六) 1026 程序运行时间 1027 打印沙漏 1028 人口普查 1029 旧键盘 1030 完美数列 方法一 方法二 1026 程序运行时间 要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用...

Hannah的博客 906

「PAT乙级真题解析」Basic Level 1030 完美数列 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定一个正整数数列, 要求找出从中尽可能多的数组成一个数列,使得新数列满足指定条件。 即, 新数列的最大值 小于等于 新数列的最小值 乘以 给定系数p. 由于数列和系数p是给定的, 变量是选取不同子数列后所对应的最大值和最小值。 所以这是一个找满足指定条件的一对数作为最大值和最小值的问题。

过美好生活,做高效程序员 3164

pat-python-1030 完美数列

n,p = [int(i) for i in input().split()] raw = input().split() temp = [int(i) for i in raw] data = sorted(temp) big = 0 for i in range(n): if big < n - i: for j in range(i+big, n): if data[j] <= data[i] * p: bi.

陆沙的博客 188

1030 完美数列【PAT (Basic Level) Practice (中文)】

1030 完美数列【PAT (Basic Level) Practice (中文)】

少侠PSY的博客 281

pat-1030 完美数列

//1030 完美数列 (25 分) //给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列。 //现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。 //输入格式: //输入第一行给出两个正整数 N 和 p,其中 N(≤10 //​5 //​​)是输入的正整数的个数,p(≤10 //​9 //​​)是给定的参...

wwwww_bw的博客 220

【报错】sqli-labs靶场搭建出现“Unable to connect to the database: security”

搭建sqli-labs靶场时,“Unable to connect to the database: security”报错解决

九芒星的博客 2991

nCode:GlyphWorks案例教程一

nCode GlyphWorks案例一Comparing Frequency Content of Two Different Tests案例文件目标配置选择数据 Comparing Frequency Content of Two Different Tests 在本案例中,我们将比较来自两个不同测试的六个加速计通道的频率内容。将三轴加速度计放置在车辆的左前角和右前角,然后分别在两个不同的试验路面上行驶12分钟以上。 案例文件 此案例的文件(采用nCode DAC格式)位于nCode安装目录下的\demo

追月行的博客 1万+

【PAT_Python解】1030 完美数列

多学习其他大佬的AC代码!

新时代先锋的博客 939

STM32在六轴机械臂实时控制中的选型与分层架构设计

嵌入式实时控制系统中,微控制器的选型直接决定运动控制精度与系统可靠性。其核心在于匹配确定性中断响应、低延迟外设协同与工业协议栈支持等硬性指标。STM32凭借Cortex-M内核的NVIC调度能力、成熟HAL库及CAN FD/高级定时器等专用外设,在机电一体化场景中成为伺服控制中枢的首选。相比ESP32等通用MCU,STM32在硬实时性、EMC认证生态和工业总线兼容性上具备不可替代优势。本文围绕GTB六轴机械臂项目,详解基于STM32F407的硬件抽象层配置、FreeRTOS任务调度、事件队列解耦及闭环控制数

jupi8的博客 755

PAT乙级_1030 完美数列_Python_AC解法_无疑难点

本文介绍了PAT乙级1030题"完美数列"的Python解法。题目要求在给定数列中找出满足M≤mp条件的最长子序列。解题思路:先对输入数列排序,然后使用双指针法遍历数组,寻找满足条件的最大长度子序列。算法时间复杂度为O(nlogn)(排序)+O(n)(遍历)=O(nlogn),能够满足题目要求。代码实现简洁,通过维护头尾指针和不断更新最大长度来得到最终结果。当找到长度等于总长度的解时可提前终止循环优化性能。输入输出样例验证了算法的正确性。

CongQianS1的博客 286

cs188Inference in Bayes Nets(贝叶斯网络的推理)

cs188Inference in Bayes Nets贝叶斯网络的推理Question1(3 points):Bayes Net StructureQuestion2(1 points):Bayes Net ProbabilitiesQuestion 3(5 points):Join FactorsQuestion4(4 points):EliminateQuestion5(4 points):NormalizeQuestion 6(4 points):Variable EliminationQuesti

weixin_46582817的博客 1674

要理解成本中心与利润中心的根本区别与适用场景,需从 “责任范围、考核核心、管理目标” 三个核心维度切入,同时明确二者在企业管理体系中的联动关系

摘要: 成本中心与利润核心区别在于责任范围、考核目标和管理权限。成本中心仅对成本负责(如生产、行政部门),考核成本控制能力;利润中心需同时管控成本与收入(如独立产品线、区域分公司),以利润为核心指标。选择标准取决于单元是否拥有收入决策权:无收入权的支持/执行部门设为成本中心,能独立经营、核算盈亏的单元设为利润中心。二者协同运作,成本中心为利润中心提供基础支持,利润中心的需求动态影响成本中心资源配置,共同实现企业整体目标。划分本质是确保考核指标与责任范围匹配,避免管理失效。

金牌架构师 657

PAT 乙级 1030 完美数列 Python

Python3-PAT乙级1030 完美数列 (25 分) 给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列。 现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。 输入格式: 输入第一行给出两个正整数 N 和 p,其中 N(≤10^5)是输入的正整数的个数, p(≤ 10 ^ 9​ )是给定的参数。第二行给出...

离暑假还有41天的博客 424

2025华为OD机试真题最新题库 (B+C+D+E+2025A+2025B卷) + 在线OJ在线刷题使用(C++、Java、Python C语言 JS合集)(正在更新2025B卷,目前已收录710道)

2024年,华为目前已经启用D卷,目前D卷和C卷的题目一样一次订阅永久阅读,支持在线刷题,持续更新,有问题随时解答,本专栏题目数量已收录到484道。每篇文章的思路分析都非常详细,题目新增图解思路,问题解疑,多样例测试,超过百字的思路参考解析。

KJ.JK 11万+

PAT (Basic Level) Practice -乙级-1030 - 完美数列

PAT (Basic Level) Practice -乙级-1030 - 完美数列 仅记录一下自己刷PAT题的思路和过程等等,答案不一定完全正确,欢迎大家和我一起分析探讨! 语言:C++ 题目 给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列。 现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。 输入格式: 输入第一行给出两个正整数 N 和 p,其中 N(≤105)是输入的正整数的个数,p(≤10

Kother的博客 238

芒果YOLO11改进59:分类损失函数Loss篇FocalLoss:即插即用|最新改进FocalLoss损失函数,提高处理不平衡数据分类场景下的任务性能,提升YOLO11检测精度

即插即用|最新改进FocalLoss损失函数,提高处理不平衡数据分类场景下的任务性能,提升YOLO11检测精度

包括YOLOv5、YOLOv7、YOLOv8等模型改进 550

基于STM32与FPGA的数据采集系统的设计与实现

数据采集系统在现代工程中起着至关重要的作用,用于实时获取和处理各种传感器或外部设备的数据。在本文中,我们将探讨如何基于STM32微控制器和FPGA(现场可编程门阵列)实现一个高效的数据采集系统。我们可以使用STM32的UART、SPI或I2C接口与各种传感器或外部设备进行通信,并通过GPIO口实现控制功能。在硬件连接完成后,我们可以通过STM32控制FPGA的配置和数据传输。STM32作为主控单元负责与外部设备进行通信和数据处理,而FPGA则用于高速数据采集和实时处理。具体的通信协议取决于连接的设备类型。

UbiSqlserver的博客 1797

pat乙级1030 完美数列 (25 分) python

这个题测试点4易超时 在遍历时注意:少用len()函数 少用list.index()函数 过于耗费时间 在初始给你列表长度的时候 就不要自己再用len求一边了 (最初想将maxvalue=(-p*完美数列第一项)加入列表副本 根据绝对值对列表副本排序 然后用maxvalue的index将列表副本分割 最后分割出的列表长度就是这个完美数列的长度 (但是这样做 会在每次更换最小值时产生新的maxvalue 对列表副本重新排序 找maxvalue的index 极其耗费时间 除了ac不了没啥问题 (最后选择了双重.

weixin_47234647的博客 319

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

PAT乙级合集——python实现(持续更新中~)

最近在巩固python编程能力,本文用于记录python实现的PAT乙级刷题索引,以及在刷题过程中总结的一些规则和经验~ 刷题建议:PAT乙级都是些简单的题目,如果是刷题的同学可以直接按照题号顺序刷即可~ 刷题笔记和规则整理: 合集: 乙级编号 标题 PAT 1001 害死人不偿命的(3n+1)猜想(15分) PAT 1002 写出这个数 (20分) PAT 1003 我要通过!(20分) PAT 1004 成绩排名 (20分) PAT 1005 继续(3n+1)猜想(25分

crayonjingjing的博客 1205

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

PAT_乙级_1030

1030 完美数列 给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列。 现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。 输入格式: 输入第一行给出两个正整数 N 和 p,其中 N(≤10​5​​ )是输入的正整数的个数,p(≤10 9​​ )是给定的参数。第二行给出 N 个正整数,每个数不超过 10...

lzc842650834的博客 265

C++/Python PAT乙级 1030完美数列(25)

题目描述 给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M <= m * p,则称这个数列是完美数列。 现在给定参数p和一些正整数,请你从中选择尽可能多的数构成一个完美数列。 输入描述: 输入第一行给出两个正整数N和p,其中N(<= 105)是输入的正整数的个数,p(<= 109)是给定的参数。第二行给出N个正整数,每个数超过109。 输出描述...

qq_42344132的博客 124

PAT乙级_合集_Python_AC解法_已完结至1125题

本文是针对PAT乙级考试Python解题的优化指南。作者发现虽然多数题目能顺利通过,但部分代码在提交时会出现错误或超时,而PAT系统不提供详细反馈。现有的Python解题资料较少且部分存在效率问题。文章旨在记录解题过程中的卡点、优化方法和最终AC代码,为使用Python的考生提供参考。目前优先更新前50题中较难的题目,后续会逐步补充其他题目。每道题将详细讲解解题思路以弥补代码注释不足的问题,帮助读者理解优化过程。

CongQianS1的博客 861
上一篇: Pat乙级1029题——旧键盘(Python)
下一篇: Pat乙级1031题——查验身份证(Python)
coder_wu
博客等级 码龄8年 5粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值