2018年蓝桥杯省赛试题-5道(Python)
文章目录
- 一、日志统计
- 思考
- 二、递增三元组
- 思考
- 三、螺旋折线
- 思考
- 四、乘积最大
- 思考
- 五、全球变暖
- 思考
- 尾声
提示:以下是本篇文章正文内容,下面案例可供参考
一、日志统计
题目描述
小明维护着一个程序员论坛。
现在他收集了一份"点赞"日志,日志共有 N 行。其中每一行的格式是:
ts id
表示在 ts 时刻编号 id 的帖子收到一个"赞"。
现在小明想统计有哪些帖子曾经是"热帖"。
如果一个帖子曾在任意一个长度为 D 的时间段内收到不少于 K 个赞,
小明就认为这个帖子曾是"热帖"。
具体来说,如果存在某个时刻 T 满足该帖在
[T,T+D) 这段时间内**(注意是左闭右开区间)**收到不少于 K 个赞,该帖就曾是"热帖"。
给定日志,请你帮助小明统计出所有曾是"热帖"的帖子编号。


思考
以python角度来处理问题
首先输入的话,input接受参数,外套map来接受多个参数,并指定为int型
N, D, K = list(map(int, input().split()))
然后通过传入的n确定循环次数,将帖子时间和id用列表存储
whole = []
for i in range(N):whole.append(list(map(int, input().split())))
接着使用defaultdict来将键-值对序列转换为列表字典
collections.defaultdict()的使用
d = collections.defaultdict(list)
for i in whole:d[i[1]].append(i[0])

Python中通过Key访问字典,当Key不存在时,会引发‘KeyError’异常。为了避免这种情况的发生,可以使用collections类中的defaultdict()方法来为字典提供默认值。
解读以下代码
for key, value in d.items():if len(value) < K:continuetemp = []value.sort()for i in value:temp.append(i)while i - temp[0] >= D:temp.pop(0)if len(temp) >= K:result.append(key)break
先进行if判断,如果出现的时间点个数都少于所需赞的个数,那后续更难满足其条件了
if len(value) < K:continue
之后的代码逻辑我是这样理解的
遍历循环时,temp存储临时的ts
while判断i和临时ts之间的差值是否大于题目时间要求,超过则pop出栈顶元素,也就是第一个元素
for i in value:temp.append(i)while i - temp[0] >= D:temp.pop(0)
这样最后的列表temp若存储个数能超过或等于K,说明满足要求
用result列表存储
完整代码
import collections
result = []
N, D, K = list(map(int, input().split()))
whole = []
for i in range(N):whole.append(list(map(int, input().split())))d = collections.defaultdict(list)
for i in whole:d[i[1]].append(i[0])print(d.items())
for key, value in d.items():if len(value) < K:continuetemp = []value.sort()for i in value:temp.append(i)while i - temp[0] >= D:temp.pop(0)if len(temp) >= K:result.append(key)breakresult.sort()
for i in result:print(i)
二、递增三元组
思考
import os
import sys
import bisect# 请在此输入您的代码
N = eval(input())
a = sorted(list(map(int,input().split())))
b = sorted(list(map(int,input().split())))
c = sorted(list(map(int,input().split())))s = 0
for i in range(N):n1 = bisect.bisect_left(a,b[i])n2 = N-bisect.bisect_right(c,b[i])s+=n1*n2
print(s)
三、螺旋折线
思考
import os
import sys# 请在此输入您的代码
x,y=map(int,input().split())
n=max(abs(x),abs(y))
if x==-n or y==n:t=n*(n*4-2)+x+y
elif x==n or y==-n:t=n*(n*4+2)-x-y
print(t)
四、乘积最大
思考
mo=int(1e9+9)
def mod(x):if x<0:return -((-x)%mo)return x%mo
n,k=map(int,input().split())
a=[]
for i in range(n):a.append(int(input()))
a.sort()
l,r=0,n-1
ans=1
sign=1
if k%2:ans=a[r]r-=1k-=1if ans<0:sign=-1
while k:x,y=a[l]*a[l+1],a[r]*a[r-1]if x*sign>=y*sign:ans*=x l+=2else:ans*=yr-=2ans=mod(ans)k-=2
print(ans)
五、全球变暖
思考
import os
import syssys.setrecursionlimit(1000000) # 修改深度限制,否则会出现段错误!!!ex死我了
n = int(input())
highlands = 0
islands = 0
note = [[0] * n for _ in range(n)]
flag = 0 # 确保回溯时重复确认highlands
picture = []
move = [[1, 0], [-1, 0], [0, 1], [0, -1]]
for i in range(n):picture.append(input())print(picture)
print(note)def DFS(x, y):global flagglobal highlandsif note[x][y] == 1:returnnote[x][y] = 1 # 记录已经遍历过if flag == 0:if picture[x + 1][y] == '#' and picture[x - 1][y] == '#' and picture[x][y + 1] == '#' and picture[x][y - 1] == '#': # 找到高地highlands += 1flag = 1for i in range(4):xx = x + move[i][0]yy = y + move[i][1]if picture[xx][yy] == '#' and note[xx][yy] == 0:DFS(xx, yy)for x in range(n):for y in range(n):if picture[x][y] == '#' and note[x][y] == 0:print(x,y)islands += 1flag = 0DFS(x, y)print(islands - highlands)
尾声
其他的后续再跟进思路,感觉题目都好难救命
相关文章:
2018年蓝桥杯省赛试题-5道(Python)
文章目录一、日志统计思考二、递增三元组思考三、螺旋折线思考四、乘积最大思考五、全球变暖思考尾声提示:以下是本篇文章正文内容,下面案例可供参考 一、日志统计 题目描述 小明维护着一个程序员论坛。 现在他收集了一份"点赞"日志…...
Python稀疏矩阵最小二乘法
文章目录最小二乘法返回值测试最小二乘法 scipy.sparse.linalg实现了两种稀疏矩阵最小二乘法lsqr和lsmr,前者是经典算法,后者来自斯坦福优化实验室,据称可以比lsqr更快收敛。 这两个函数可以求解AxbAxbAxb,或arg minx∥Ax−b…...
mac本前端Homebrew下载,操作
1、打开电脑终端 2、下载Homebrew,在终端中输入 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"开始下载Homebrew,因为这个地址是国外网站,下载失败的话,输入…...
Linux系统之查看进程监听端口方法
Linux系统之查看进程监听端口方法一、端口监听介绍二、使用netstat命令1.netstat命令介绍2.netstat帮助3.安装netstat工具4.列出所有监听 tcp 端口5.显示TCP端口的统计信息6.查看某个服务监听端口三、使用ss命令1.ss命令介绍2.ss命令帮助3.查看某个服务监听端口四、使用lsof命令…...
使用命令别名一键启动arthas
1. 使用命令别名启动arthas 确保单板上有jdk和arthas jdk目录:/home/xinliushijian/arthas/jdk arthas目录;/home/xinliushijian/arthas su xinliushijian编写脚本messi.sh cd /home/xinliushijian/arthas vi messi.sh 内容如下: #!/bin/ba…...
python+pytest接口自动化(2)-HTTP协议基础
HTTP协议简介HTTP 即 HyperText Transfer Protocol(超文本传输协议),是互联网上应用最为广泛的一种网络协议。所有的 WWW 文件都必须遵守这个标准。设计 HTTP 最初的目的是为了提供一种发布和接收 HTML 页面的方法。HTTP 协议在 OSI 模型中属…...
操作系统权限提升(十五)之绕过UAC提权-基于白名单DLL劫持绕过UAC提权
系列文章 操作系统权限提升(十二)之绕过UAC提权-Windows UAC概述 操作系统权限提升(十三)之绕过UAC提权-MSF和CS绕过UAC提权 操作系统权限提升(十四)之绕过UAC提权-基于白名单AutoElevate绕过UAC提权 注:阅读本编文章前,请先阅读系列文章,以…...
非常好看的html网页个人简历
一. 前言 文末获取gitee链接 在前几天逛b站的时候,发现了个比较实用的东西-----个人简介网页版,相当于网页版的个人简历,相较于PDF形式的,网页版所能呈现内容更加丰富,而且更加美观,在BOOS上被HR小姐姐要…...
轻量级网络模型ShuffleNet V2
在学习ShuffleNet V2内容前需要简单了解卷积神经网络和MobileNet,以及Shuffnet V1的相关内容,大家可以出门左转,去看我之前的几篇博客MobileNet发展脉络(V1-V2-V3),轻量级网络模型ShuffleNet V1🆗ÿ…...
分享美容美发会员管理系统功能的特点_美容美发会员管理系统怎么做
人们越来越关心美发,美发行业发展迅速,小程序可以连接在线场景,许多美发院也开发了会员卡管理系统。那么一个实用的美发会员管理系统怎么制作呢?它有什么功能?我们一起来看看~(干货满满,耐心看完…...
Oracle-05-DCL篇
🏆一、简介 Oracle的DCL代表数据库控制语言,用于管理数据库对象的访问和安全性。DCL的两个主要命令是GRANT和REVOKE。 GRANT命令用于授予用户或角色对数据库对象的访问权限,例如表、视图或存储过程。GRANT命令的语法如下: GRANT privilege_name [, privilege_name]... …...
tess4j简单使用入门
tess4j下载 下载地址: https://sourceforge.net/projects/tess4j/ 不要直接下载,点击files,然后下载最新版 下载解压后放到指定的目录即可,这里放到d:\jar目录下 tess4j根目录: d:\jar\tess4j tess4j使用 把test4j项目目录中dist和lib目录下的所有jar包导入到需要的项目中…...
WebGPU学习(4)---使用 UniformBuffer
接下来让我们使用 UniformBuffer。UniformBuffer 是一个只读内存区域,可以在着色器上访问。 这次,我们将传递给着色器的矩阵存储在 UniformBuffer 中。演示示例 1.在顶点着色器中的 UniformBuffer 这次我们在顶点着色器里定义一个名为Uniforms的新结构体…...
Http客户端Feign-远程调用
Feign的使用步骤 引入依赖添加EnableFeignClients注解编写FeignClient接口使用FeignClient中定义的方法代替RestTemplate Feign的日志配置 1.方式一是配置文件,feign.client.config.xxx.loggerLevel 如果xxx是default则代表全局如果xxx是服务名称,例如userservi…...
RK3568镜像的拆包和打包
文章目录 前言一、window上分包和打包分包打包二、Linux上分包和打包分包打包总结前言 本文记录在win10上利用瑞芯微提供的工具进行分包和打包,同样也有Linux教程 提示:以下是本篇文章正文内容,下面案例可供参考 一、window上分包和打包 分包 window下一般直接利用工具即…...
《设计模式》适配器模式
《设计模式》适配器模式 适配器(Adapter)是一种结构型设计模式,它允许我们将一个类的接口转换成另一个类的接口,从而使得原本由于接口不兼容而无法合作的类能够一起工作。适配器模式通常用于以下情况: 在已有的类中添…...
linux 随笔 5-服务管理
0. 装到虚拟机与物理机,感觉各有各的不方便 Linux下systemctl命令和service、chkconfig命令的区别 1. service 根据/etc/init.d目录下的配置,做服务相关的: 启动停止重新启动关闭系统服务 2. chkconfig 用于维护 /etc/rc[0-6].d 的命令…...
【java基础】枚举类(enum)
文章目录基本介绍快速使用字段、方法、构造器枚举类方法toString方法valueOf方法values方法ordinal方法基本介绍 在java中有一种特殊的类型就是枚举类,对于一个有限的有固定值的集合,我们就可以考虑使用枚举类来进行表示,例如服装的大小为 小…...
Linux2
(1)root用户的主目录: (3)查看 (4)远程登陆系统:CentOS7上使用ifconfig查看IP,使用putty远程登陆 (5)查询目前用户登录情况:who命令…...
C语言基础应用(二)数据的转换与输入输出
学习了C语言的基本数据类型后,我们可能会想这些数据如何进行运算,是否可以让不同类型的数据直接进行运算呢? 一、数据类型转换 1.1 int类型与float类型之间的转换 int i 5; // j值为2.000000 因为左右操作数均为整型float j i/2; // …...
ARM GIC中断控制器虚拟化架构与优化实践
1. ARM GIC中断控制器虚拟化架构概述中断控制器是现代计算机系统中至关重要的组件,特别是在虚拟化环境中,高效的中断处理机制直接影响着虚拟机的性能和响应能力。ARM架构的通用中断控制器(GIC)从v3版本开始引入了完整的虚拟化支持,为虚拟机监…...
分布式缓存策略:提升应用性能和可扩展性
分布式缓存策略:提升应用性能和可扩展性 一、分布式缓存概述 1.1 分布式缓存的定义 分布式缓存是一种将数据存储在多个节点上的缓存系统,它通过在内存中存储常用数据,减少对后端数据库的访问,从而提高应用性能和可扩展性。 1.…...
仅限前500名获取|Midjourney Blackberry印相专业级Prompt模板包(含EXIF元数据模拟指令)
更多请点击: https://intelliparadigm.com 第一章:Midjourney Blackberry印相的美学溯源与技术本质 Blackberry印相(Blackberry Photographic Process)并非真实存在的传统暗房工艺,而是Midjourney社区中对一类高对比、…...
终极指南:Flair如何引领NLP技术未来发展趋势
终极指南:Flair如何引领NLP技术未来发展趋势 【免费下载链接】flair A very simple framework for state-of-the-art Natural Language Processing (NLP) 项目地址: https://gitcode.com/gh_mirrors/fl/flair Flair是一个由柏林洪堡大学开发的简单而强大的自…...
凌晨还在改论文?这些降重黑科技帮你一键通关
凌晨对着电脑屏幕改论文,那种既疲惫又焦虑的感觉,经历过的人都懂。好在现在的降重工具已经不只是“替换同义词”那么简单了,像 毕业之家 和 PaperRed 这两款主流工具,各自走了完全不同的技术路线,可以根据你的痛点来选…...
MarkFlowy:基于智能感知的Markdown写作流工具设计与实现
1. 项目概述:一个为Markdown而生的高效写作流工具 如果你和我一样,每天的工作都离不开Markdown——写技术文档、整理项目笔记、构思博客文章,那你一定体会过那种在“专注写作”和“格式调整”之间反复横跳的痛苦。刚进入心流状态,…...
AI提示词工程实战:结构化系统与用户提示词提升AI工具效能
1. 项目概述:一个为AI工具提供高质量提示词的“弹药库”如果你和我一样,每天都在和各种AI工具打交道——从写代码的Cursor、ChatGPT,到画图的Midjourney、DALL-E,再到处理数据的Pandas AI——那你肯定遇到过这样的时刻:…...
DRAM计算内存的电源传输网络优化策略
1. DRAM计算内存中的电源传输网络挑战与优化在数据密集型应用爆炸式增长的今天,传统冯诺依曼架构面临严峻的"内存墙"挑战。计算内存(Compute-in-Memory, CIM)技术通过在内存内部执行计算任务,从根本上改变了数据处理范式…...
BLE技术解析:物联网低功耗无线通信核心
1. BLE技术概述:物联网的无线连接基石蓝牙低功耗技术(Bluetooth Low Energy,简称BLE)自2010年作为蓝牙4.0核心规范的一部分推出以来,已成为物联网设备无线通信的事实标准。与经典蓝牙技术相比,BLE在保持相似…...
VCSA 7.0 报 vAPI Endpoint 黄灯告警?别慌,这份保姆级排查与修复指南帮你搞定
VCSA 7.0 vAPI Endpoint黄灯告警全流程诊断手册 凌晨三点,监控系统突然弹出一条告警——vCenter Server的vAPI Endpoint服务状态由绿转黄。作为运维负责人,你需要在最短时间内判断这是需要立即处理的严重故障,还是可以暂缓的偶发异常。本文将…...
