蓝桥杯真题(Python)每日练Day4

news2024/10/7 10:22:44

题目

OJ编号2117
请添加图片描述

题目分析

  1. 第一种先采用暴力的思想,从第一根竹子开始,找到连续的高度相同的竹子,砍掉这些竹子,一直循环这个方法,直到所有的竹子高度都为1。
  2. 很明显,依次遍历竹子的高度复杂度为O(n),可能会遍历很多次,总复杂度大于O(n**2)。
  3. 我还想到了优先队列的方法实现,每次将最高的竹子优先出队,但是还是不能通过所有数据。
  4. 本题的最后方法是模拟,首先,计算最多砍多少次,计算每个竹子砍到1需要多少次,将所有竹子砍到1总数即为ans。然后,记录每根竹子每次被砍之后的新高度。最后比较任意两个相邻的竹子看他们是否有相同高度的,如果有相同的高度则可以一起砍,从而少砍依次,ans-1。

题解(暴力)

from math import * 
n=int(input())
a=list(map(int,input().split()))
ans=0#计算总共需要使用多少次魔力
while True:#当存在不为1的竹子的长度进入while循环
  idx=0
  for i in range(n):
    if a[i]>a[idx]:
      idx=i#此时把最大的竹子子的索引找出
  if a[idx]==1:#全部竹子长度都为1时,跳出循环
      break
  val=a[idx]#把最大的竹子的长度存入val
  for i in range(idx,n):
    if a[i]!=val:#如果不连续,也就是没有相同长度的竹子,跳出循环
      break
    a[i]=floor(sqrt(floor(a[i]/2)+1))#反之向下取整
  ans+=1
print(ans)

题解(模拟)

from math import *
f=[[0]*10 for _ in range(200010)]#存储每根竹子每次被砍之后的高度
s=[0]*10
n=int(input())
a=list(map(int,input().split()))
res=0# 计算次数
for i in range(n):
    x=a[i];top=0
    while x>1:
        top+=1;s[top]=x
        x=floor(sqrt(floor(x/2)+1))
    res+=top
    k=top
    j=0
    while k>0:
        f[i][j]=s[k];k-=1;j+=1
for j in range(10):
    for i in range(1,n):
        if f[i][j]>0 and f[i][j]==f[i-1][j]:
            res-=1
print(res)

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

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

相关文章

RabbitMQ消息应答与发布

消息应答 RabbitMQ一旦向消费者发送了一个消息,便立即将该消息,标记为删除. 消费者完成一个任务可能需要一段时间,如果其中一个消费者处理一个很长的任务并仅仅执行了一半就突然挂掉了,在这种情况下,我们将丢失正在处理的消息,后续给消费者发送的消息也就无法接收到了. 为了…

C语言之反汇编查看函数栈帧的创建与销毁

文章目录 一、 什么是函数栈帧?二、 理解函数栈帧能解决什么问题呢?三、 函数栈帧的创建和销毁解析3.1、什么是栈?3.2、认识相关寄存器和汇编指令3.2.1 相关寄存器3.2.2 相关汇编命令 3.3、 解析函数栈帧的创建和销毁3.3.1 预备知识3.3.2 代码…

Ansible详解(架构,模块)及部署示例

目录 Ansible概述 Ansible作用 Ansible特点 Ansible架构 工作流程 ansible 环境安装部署 环境准备 安装Ansible服务 Ansible 命令行模块 模块详解 ansible-doc command模块 shell模块 cron 模块 user模块 group模块 copy 模块 file 模块 hostname 模块 pin…

【论文+视频控制】23.08DragNUWA1.5:通过集成文本、图像和轨迹来进行视频生成中的细粒度控制 (24.01.08开源最新模型)

论文链接:DragNUWA: Fine-grained Control in Video Generation by Integrating Text, Image, and Trajectory 代码:https://github.com/ProjectNUWA/DragNUWA 一、简介 中国科学技术大学微软亚洲研究院 在 NUWA多模态模型、 Stable Video Diffusion …

mockjs(3)

mockjs(1) mockjs(2) 这篇主要是Mock.random工具类,前段要用的话主要是在模版中的占位符。mockjs(1)里面的3.2 6 Mock.random Mock.Random 是一个工具类,用于生成各种随机数据。 …

即插即用篇 | YOLOv8 引入 SENetv2 | 多套版本配合使用

卷积神经网络(CNNs)通过提取空间特征并在基于视觉的任务中实现了最先进的准确性,彻底改变了图像分类。所提出的压缩激励网络模块收集输入的通道表示。多层感知机(MLP)从数据中学习全局表示,在大多数用于学习图像提取特征的图像分类模型中起到关键作用。在本文中,我们引入…

论文阅读2---多线激光lidar内参标定原理

前言:该论文介绍多线激光lidar的标定内参的原理,有兴趣的,可研读原论文。 1、标定参数 rotCorrection:旋转修正角,每束激光的方位角偏移(与当前旋转角度的偏移,正值表示激光束逆时针旋转&…

实用的SQLite数据库可视化管理工具推荐

前言 俗话说得好“工欲善其事,必先利其器”,合理的选择和使用可视化的管理工具可以降低技术入门和使用门槛。今天推荐7款实用的SQLite数据库可视化管理工具(GUI),帮助大家更好的管理SQLite数据库。 什么是SQLite? SQLite是一个…

【新闻感想】谈一下PandoraNext的覆灭(潘多拉Next-国内可访问的免费开放GPT共享站将于2024年1月30日关闭)

文章目录 悲报:TIME TO SAY GOODBYE!PandoraNext!PandoraNext作者言:你们赢了,但我却没有输我如何了解到PandoraNext的合照留念于是开始逆向! 悲报:TIME TO SAY GOODBYE!PandoraNext…

外包干了2个多月,技术退步明显。。。。。

先说一下自己的情况,本科生,19年通过校招进入广州某软件公司,干了接近3年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

Java/Python/Go不同开发语言在进程、线程和协程的设计差异

Java/Python/Go不同开发语言在进程、线程和协程的设计差异 1. 进程、线程和协程上的差异1.1 进程、线程、协程的定义1.2 进程、线程、协程的差异1.3 进程、线程、协程的内存成本1.4 进程、线程、协程的切换成本 2. 线程、协程之间的通信和协作方式2.1 python如何实现线程通信&a…

换上龙年表盘,开启一整年的好运

农历新年即将到来,华为表盘市场陆续推出一系列龙年主题的表盘。其中,三款表盘的设计格外引人注目:云白腾龙机械、非凡腾龙多色、玄武腾龙机械。 这三款表盘不仅在艺术审美上展现了设计师的独特创意与深厚功底,更是在细微之处巧妙融…

Tensorflow2.0笔记 - 范式norm,reduce_min/max/mean,argmax/min, equal,unique

练习norm,reduce_min/max,argmax/min, equal,unique等相关操作。 范数主要有三种: import tensorflow as tf import numpy as nptf.__version__#范数参考:https://blog.csdn.net/HiWangWenBing/article/details/119707541 tensor tf.convert_to_tensor(…

python系列-函数(上)

🌈个人主页: 会编程的果子君 ​💫个人格言:“成为自己未来的主人~” 目录 函数 函数是什么 语法格式 函数参数 函数返回值 函数 函数是什么 编程中的函数和数学中的函数有一定的相似之处 编程中的函数,是一段可以被重复利用的代码片段…

Oracle Linux 9.3 安装图解

风险告知 本人及本篇博文不为任何人及任何行为的任何风险承担责任,图解仅供参考,请悉知!本次安装图解是在一个全新的演示环境下进行的,演示环境中没有任何有价值的数据,但这并不代表摆在你面前的环境也是如此。生产环境…

Unity工程没有创建.sln文件,导致打开C#文件无法打开解决方案

最近又开始折腾些Unity的小项目,重新遇到一些常见的小问题 点击报错文件 却没有打开文件 于是查看了下打开Window->Package Manager 选择Unity Registry 搜索Visual Studio Editor,发现并没有安装 同理,也可以安装VSCode的插件 问题解决了…

【服务器】安装Docker环境

目录 🌺【前言】 🌼1. 打开Xshell软件 🌻2. 安装Docker环境 ①:下载docker.sh脚本 ②:列出下载的内容 ③:执行一下get-docker.sh文件,安装docker ④:运行docker服务 ⑤&…

Python IO流

第一章、IO流 一、概述 1、IO流概念 2、IO流的分类 在Python中,I/O(输入/输出)流是处理数据输入和输出的机制。它们用于从文件、网络连接、内存等源读取数据,或将数据写入到这些目标中。I/O流以字节流和字符流的形式存在。 Pyth…

C++版QT:电子时钟

digiclock.h #ifndef DIGICLOCK_H #define DIGICLOCK_H ​ #include <QLCDNumber> ​ class DigiClock : public QLCDNumber {Q_OBJECT public:DigiClock(QWidget* parent 0);void mousePressEvent(QMouseEvent*);void mouseMoveEvent(QMouseEvent*); public slots:voi…

Git--创建仓库(1)

git init Git 使用 git init 命令来初始化一个 Git 仓库&#xff0c;Git 的很多命令都需要在 Git 的仓库中运行&#xff0c;所以 git init 是使用 Git 的第一个命令。 在执行完成 git init 命令后&#xff0c;Git 仓库会生成一个 .git 目录&#xff0c;该目录包含了资源的所有…