蓝桥杯每日一题(python)
##斐波那契数列的应用 --- 题目斐波那契
题目:
如果数组 A = (a0, a1, · · · , an−1) 满足以下条件,就说它是一个斐波那契数组:
1. n ≥ 2;
2. a0 = a1;
3. 对于所有的 i(i ≥ 2),都满足 ai = ai−1 + ai−2。
现在,给出一个数组 A ,你可以执行任意次修改,每次修改将数组中的某个位置的元素修改为一个大于 0 的整数。请问最少修改几个元素之后,数组 A 会变成一个斐波那契数组。
输入格式
输入的第一行包含一个整数 n ,表示数组 A 中的元素个数。
第二行包含 n 个整数 a0, a1, · · · , an−1,相邻两个整数之间用一个空格分隔。
输出格式
输出一行包含一个整数表示最少需要修改数组 A 中的几个元素之后,数组 A 可以变为一个斐波那契数组。
样例输入
复制
5 1 2 2 4 8
样例输出
复制
3
提示
将原数组修改为 (1, 1, 2, 3, 5),最少修改三个元素变成了一个斐波那契数组。
对于所有评测用例,2 ≤ n ≤ 105 ,1 ≤ ai ≤ 106。
解题思路:我们枚举出前30个数的时候,发现第31个数已经超出了10的6次方,那么这后面的数全部都要修改,所以我们就不管30个以后的数了,我们的关注点就放在这30个。 然后我们发现,以下的式子都符合斐波那契数列的定义:
互相为倍数关系 1:1 1 2 3 5
2:2 2 4 6 10 3:3 3 6 9 15 则可以设计字典录入每层中有多少数,进行动态解题 循环每到一个数则对数取余看是否满足倍数关系,在对数取整存入 字典,最后利用数组长度减去倍数层最多的数,可得到需要修改的数。
注意事项: get函数的使用 --- 用在字典处
dict.get(key, default=None)
解释:
key:字典中要查找的键
default:键不存在时要返回的默认值,若不提供,则返回None
import os
import sysn = int(input()) # 接收数组长度
a = list(map(int, input().split())) # 输入的要修改的数组nums = [1, 1]
for i in range(1, 29):nums.append(nums[i - 1] + nums[i]) # 枚举出前30个斐波那契数列r = [] # 接收nums / a 的倍率
for i in range(min(len(a), len(nums))):r.append(nums[i] / a[i])res = 0 # 统计数目 符合的数
di = {} # 建立一个字典,以分层不同的倍率层
for j in r:di[j] = di.get(j, 0) + 1 # 不断增加个数res = max(di[j], res)print(len(a) - res) # 减去倍率层中数目最多的那个 就是最小要修改的数
感谢你的观看。
相关文章:
蓝桥杯每日一题(python)
##斐波那契数列的应用 --- 题目斐波那契 题目: 如果数组 A (a0, a1, , an−1) 满足以下条件,就说它是一个斐波那契数组: 1. n ≥ 2; 2. a0 a1; 3. 对于所有的 i(i ≥ 2),都满足 ai ai−1 ai−2…...
【Vue】工程化开发脚手架Vue CLI
📝个人主页:五敷有你 🔥系列专栏:Vue⛺️稳重求进,晒太阳 工程化开发&脚手架Vue CLI 基本介绍 Vue Cli是Vue官方提供的一个全局命令工具 可以帮助我们快速创建一个开发Vue项目的标准化基础架子【集成了we…...
嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM驱动编程第三天-ARM Linux ADC和触摸屏开发 (物联技术666)
链接:https://pan.baidu.com/s/1V0E9IHSoLbpiWJsncmFgdA?pwd1688 提取码:1688 教学内容: 1、ADC S3C2440的A/D转换器包含一个8通道的模拟输入转换器,可以将模拟输入信号转换成10位数字编码。 在A/D转换时钟频率为2.5MHz时&…...
LeetCode “AddressSanitizer:heat-use-after-free on address“问题解决方法
heat-use-after-free : 访问堆上已经被释放的内存地址 现象:同样代码在LeetCode上报错,但是自己在IDE手动打印并不会报错 个人猜测,这个bug可能来源于LeetCode后台输出打印链表的代码逻辑问题。 问题描述 题目来自LeetCode的8…...
幸运彩票
L1-6 幸运彩票 分数 15 作者 陈越 单位 浙江大学 彩票的号码有 6 位数字,若一张彩票的前 3 位上的数之和等于后 3 位上的数之和,则称这张彩票是幸运的。本题就请你判断…...
搭建yum仓库服务器
安装 1.安装linux 1.1安装依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 1.2下载 cd /opt/nginx wget http://nginx.org/download/nginx-1.25.3.tar.gz 1.3解压 tar -xvf nginx-1.25.3.tar.gz 1.4配置 cd nginx-1.25.3 ./configure --pre…...
贪心算法练习day1
练习1--翻硬币 1)题目及要求 2)解题思路 输入的是字符串,要想将两组字符串进行一一对比,需要将字符串转换成字符数组,再使用for循环依次遍历字符数组,进行比对。 输入两行字符串,转换成两个字…...
[VulnHub靶机渗透] WestWild 1.1
🍬 博主介绍👨🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏…...
如何使用 ControlValueAccessor 在 Angular 中创建自定义表单控件
简介 在 Angular 中创建表单时,有时您希望拥有一个不是标准文本输入、选择或复选框的输入。通过实现 ControlValueAccessor 接口并将组件注册为 NG_VALUE_ACCESSOR,您可以将自定义表单控件无缝地集成到模板驱动或响应式表单中,就像它是一个原…...
视频讲解:优化柱状图
你好,我是郭震 AI数据可视化 第三集:美化柱状图,完整视频如下所示: 美化后效果前后对比,前: 后: 附完整案例源码: util.py文件 import platformdef get_os():os_name platform.syst…...
OpenAI宣布ChatGPT新增记忆功能;谷歌AI助理Gemini应用登陆多地区
🦉 AI新闻 🚀 OpenAI宣布ChatGPT新增记忆功能,可以自由控制内存,提供个性化聊天和长期追踪服务 摘要:ChatGPT新增的记忆功能可以帮助AI模型记住用户的提问内容,并且可以自由控制其内存。这意味着用户不必…...
Solidworks:平面草图练习
继续练习平面草图,感觉基本入门了。...
React18原理: 渲染与更新时的重点关注事项
概述 react 在渲染过程中要做很多事情,所以不可能直接通过初始元素直接渲染还需要一个东西,就是虚拟节点,暂不涉及React Fiber的概念,将vDom树和Fiber 树统称为虚拟节点有了初始元素后,React 就会根据初始元素和其他可…...
嵌入式I2C 信号线为何加上拉电阻(图文并茂)
IIC 是一个两线串行通信总线,包含一个 SCL 信号和 SDA 信号,SCL 是时钟信号,从主设备发出,SDA 是数据信号,是一个双向的,设备发送数据和接收数据都是通过 SDA 信号。 在设计 IIC 信号电路的时候我们会在 SC…...
Vite 5.0 正式发布
11 月 16 日,Vite 5.0 正式发布,这是 Vite 道路上的又一个重要里程碑!Vite 现在使用 Rollup 4,这已经代表了构建性能的大幅提升。此外,还有一些新的选项可以改善开发服务器性能。 Vite 4 发布于近一年前,它…...
嵌入式STM32 单片机 GPIO 的工作原理详解
STM32的 GPIO 介绍 GPIO 是通用输入/输出端口的简称,是 STM32 可控制的引脚。GPIO 的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。 以 STM32F103ZET6 芯片为例子,该芯片共有 144 脚芯片,…...
系统调用的概念
在嵌入式开发、操作系统开发以及一般的系统编程中,系统调用是一个核心概念。它允许用户空间程序请求内核执行某些操作,如打开文件、读写数据、创建进程等。这些操作通常需要特殊的权限或访问硬件资源,因此不能直接在用户模式下执行。 系统调…...
【无标题】Matlab 之axes函数——创建笛卡尔坐标区
**基本用法:**axes 在当前图窗中创建默认的笛卡尔坐标区,并将其设置为当前坐标区。 应用场景1:在图窗中放置两个 Axes 对象,并为每个对象添加一个绘图。 要求1:指定第一个 Axes 对象的位置,使其左下角位于…...
2.12:C语言测试题
1.段错误:申请堆区内存未返回,str指向NULL 2.段错误:局部变量,本函数结束,p也释放 3.越界访问,可能正常输出hello,可能报错 4.可能段错误,释放后,str未指向NULL&#x…...
【Linux】yum软件包管理器
目录 Linux 软件包管理器 yum 什么是软件包 Linux安装软件 查看软件包 关于rzsz Linux卸载软件 查看yum源 扩展yum源下载 Linux开发工具 vim编辑器 上述vim三种模式之间的切换总结: 命令模式下,一些命令: vim配置 Linux 软件包管理…...
从CMIP6到SCI论文:气候降尺度全流程实战(含偏差校正与未来预估)-GCM数据降尺度、泰勒图评估及XGBoost机器学习建模指南
做水文气象、气候学、地理遥感、生态环境等领域的科研人,是不是都逃不过这些噩梦:尺度鸿沟难跨越:GCM 粗网格(>100km)和流域 / 城市精细尺度(<10km)不匹配,动力降尺度成本太高…...
暗黑破坏神3自动化工具:智能技能管理与效率提升解决方案
暗黑破坏神3自动化工具:智能技能管理与效率提升解决方案 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 在暗黑破坏神3的冒险旅程中&…...
Qwen3.5-35B-A3B-AWQ-4bit企业应用:HR招聘简历图识别+关键资质自动核验系统
Qwen3.5-35B-A3B-AWQ-4bit企业应用:HR招聘简历图识别关键资质自动核验系统 1. 企业招聘场景的痛点分析 在传统HR招聘流程中,简历筛选和资质核验是最耗费人力的环节之一。每天面对堆积如山的纸质简历和PDF文件,HR需要: 手动翻阅…...
内存取证新手必看:用Lovelymem+MemProcFS挂载分析,像访问文件夹一样查看RAW镜像
内存取证革命:用LovelymemMemProcFS实现零命令行分析 想象一下,当你拿到一个18GB的内存镜像文件时,不再需要面对密密麻麻的命令行参数和漫长的等待时间。传统内存取证工具如Volatility虽然强大,但对于初学者来说,记忆各…...
QT 基于qcustomplot实现热力图(四):动态数据流与交互优化实战
1. 动态数据流的核心实现策略 在实时监控系统中,热力图的数据往往需要持续更新。我遇到过不少开发者直接粗暴地全量刷新整个数据集,结果界面卡顿得像老式幻灯片。这里分享三种经过实战检验的动态更新方案,每种都有其适用场景。 增量更新法最适…...
Vivado平台下PCIe IP核选型指南:从硬核到XDMA的实战抉择
1. PCIe技术基础与Vivado开发环境搭建 第一次接触PCIe接口开发时,我被各种专业术语搞得晕头转向。后来才发现,理解PCIe就像理解高速公路系统一样简单。PCIe本质上是一种点对点的高速串行总线,就像城市间修建的多车道高速公路。每个"车道…...
SPM12实战:从nii文件元数据解析到精准slice timing配置
1. 理解nii文件与slice timing的基础概念 当你第一次拿到fMRI的nii格式数据时,可能会被这个黑箱般的文件格式搞得一头雾水。nii文件就像是把整个大脑扫描过程打包成一个数字包裹,里面不仅包含三维的脑部图像数据,还隐藏着关键的扫描参数。我在…...
ViT在语义分割中的性能优化:从VOC2012数据集看如何提升自行车识别准确率
ViT在语义分割中的性能优化:从VOC2012数据集看如何提升自行车识别准确率 语义分割作为计算机视觉领域的核心任务之一,其目标是为图像中的每个像素分配类别标签。近年来,Vision Transformer(ViT)凭借其强大的全局建模能…...
Qwen3-14B私有部署镜像算法题求解助手:从理解到实现
Qwen3-14B私有部署镜像算法题求解助手:从理解到实现 1. 为什么算法工程师需要AI助手 算法工程师和求职者每天都要面对各种算法问题,从简单的排序到复杂的动态规划。传统方式下,我们需要反复查阅资料、手动编写测试用例、调试代码࿰…...
显卡驱动深度清理指南:用DDU解决驱动残留难题
显卡驱动深度清理指南:用DDU解决驱动残留难题 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-uninstaller 你是…...
