CSDN 竞赛 32 期
CSDN 竞赛 32 期
- 1、题目名称:传奇霸业
- 2、题目名称:严查枪火
- 3、题目名称:蚂蚁家族
- 4、题目名称:运输石油
- 小结
1、题目名称:传奇霸业
传奇霸业,是兄弟就来干。 小春(HP == a)遇到了一只黄金哥布林(HP == x)。 小春每次能对哥布林造成b点伤害,哥布
林每次能对小春造成y点伤害。 作为玩家的小春怎么可能随便让哥布林打死呢!他有治疗神药,每次能恢复c点HP。 HP无
上限。 小春需要操作多少次才能打死哥布林?(治疗+攻击)
又一个水多加面,面多加水的问题,这个没什么好说的
class Solution:def __init__(self) -> None:passdef solution(self, a, b, c, x, y):result = None# TODO: 请在此编写代码n = 0while True:if b >= x:n += 1breakif y >= a: # 补血的回合n += 1a = a - y + ccontinuen += 1x -= ba -= y # 别忘记怪物会攻击小春result = nreturn result
2、题目名称:严查枪火
X国最近开始严管枪火。 像是“ak”,“m4a1”,“skr”。都是明令禁止的。 现在小Q查获了一批违禁物品其中部分是枪支。
小Q想知道自己需要按照私藏枪火来关押多少人。 (只有以上三种枪被视为违法)
开始,老顾以为是包含这些关键字的都需要关押,结果一运行,0%通过率,纳闷了,用 js 版本的正则测了下用例, /ak|m4a1|skr/gi.test(),还是 0%,改成/^(ak|m4a1|skr)$/gi.test() 结果100%了。。。
得了,这要严格相等啊,忽略大小写那种,至于用例中有没有大写的,我没专门测试,顺手就忽略大小写了
class Solution:def __init__(self) -> None:passdef solution(self, n, vector):result = None# TODO: 请在此编写代码result = 0for i in range(n):vector[i] = vector[i].lower()if vector[i] in ['ak','m4a1','skr']:result += 1return result
3、题目名称:蚂蚁家族
小蚂蚁群是一个庞大的群体,在这个蚂蚁群中有n只小蚂蚁 ,为了保证所有蚂蚁在消息传送的时候都能接收到消息,需要
在他们之间建立通信关系。就是要求小蚂蚁都可以通过多只或者直接联系到其他人。 已知几条小蚂蚁之间有通信关系,请
问还需要再新建至少多少条关系?
这明显就是要合并集合了,开始老顾是以为 n 只蚂蚁就是 1 到 n,结果有个用例,有个蚂蚁超出 n 这个数字了。。。。结果老顾第一版生成蚂蚁序列 {x:set() for x in range(n)} 在记录蚂蚁的关系时,索引溢出了。。。有一个用例,蚂蚁数量是 665 ,他部分蚂蚁的数字,是666。。。。真是个老六,坑人呢。
不知道其他人是怎么解决的这个问题,老顾干脆的使用最土的办法,所有出现在关系里的蚂蚁才进行记录,之后再用总数减去出现的蚂蚁数量,得到偷懒的蚂蚁数量。
另外,这个是情急下写得,没有优化过,效率就那么回事,大家看看就好
class Solution:def __init__(self) -> None:passdef solution(self, n, m, vector):result = None# TODO: 请在此编写代码if m == 0:return n - 1s = {} # 准备放集合的字典for i in range(m): # 根据关系,分别创建字典主键及集合x,y = vector[i]if x not in s:s[x] = set()if y not in s:s[y] = set()s[x].add(x)s[x].add(y)s[y].add(x)s[y].add(y)while True: # 对集合进行合并b = Trueks = [x for x in s.keys()] # 获取所有字典主键for i in ks:if i not in s: # 如果主键不存在就跳过continuearr = list(s[i]) # 获得主键下的所有集合for j in arr:if j != i and j in s: # 把集合内存在的主键都合并到一起s[i] = s[i].union(s[j])del s[j] # 被合并的主键删掉b = Falseif b: # 如果有合并动作,则继续循环,否则跳出breakresult = len(s) - 1 # 需要添加的关系为剩余主键数量减1f = set() # 最后,修正一下,万一某个蚂蚁没有任何关系,那么就需要补回来for i in s:f = f.union(s[i])result += n - len(f) # len(f) 为所有出现在关系中的蚂蚁数量,n为总数量,他们的差就是没有出现在关系中的蚂蚁数量return result
4、题目名称:运输石油
某石油公司需要向A、B两地运输石油。两地的需求量不同,而一辆车只能装载一定量的石油。经过计算A地需要a辆车,B
地需要b辆车运输才能满足需求。现在一共有n辆车分布在各地,每辆车前往A、B两地运输石油均可以获得一定不等的利
润。 现在请你安排a辆车前往A地,b辆车前往B地运输石油,使得在满足A、B两地石油需求的前提下,获得最大的利润。
每辆车只能前往一地运输石油。
这个题目,老顾只有70%的通过率,没有思路啊,纯暴力猜测的结果
老顾的思路是这样 n 辆车,到 a 地利润减去到 b 地利润,按这个利润差排序,
a - b 大的去 a 地,a - b 小的去 b 地,很简单的做法,后边应该能优化出来,但老顾没再继续优化,需要从 n - a - b 剩余的部分,挑选各自到 a 利润高的和到 b 利润高的进行替换原排序中的内容
class Solution:def __init__(self) -> None:passdef solution(self, n, a, b, vector):result = None# TODO: 请在此编写代码result = 0vector.sort() # 按 a 地利润排序arr = [[x[0] - x[1]] + x for x in vector] # 生成利润差数组arr.sort() # 按利润差排序result = sum([x[2] for x in arr[:b]]) + sum([x[1] for x in arr[-a:]]) # 利润差是从小到大排序的,所以选取前 b 个作为去b 的,后a 个是去 a 的,计算这些车辆的利润和return result
小结
前两题都是水题。
第三题见过类似的,好像前两期竞赛有类似题目,当时老顾没有做出来,合并集合有遗漏,这次就上心了。
第四题是真不会了。。。这个思路也不知道对不对,等后边刷 leetcode 或每日一练碰到这个题目的时候再进行补全的验证

ps: 题外话
这次竞赛,好像大佬不多啊,一共才5个满分的,这又是运气好,碰到大佬出去玩了。
答题选择使用 python 是数组操作,集合操作都比较简单,简直就是答题最方便的环境了。
相关文章:
CSDN 竞赛 32 期
CSDN 竞赛 32 期1、题目名称:传奇霸业2、题目名称:严查枪火3、题目名称:蚂蚁家族4、题目名称:运输石油小结1、题目名称:传奇霸业 传奇霸业,是兄弟就来干。 小春(HP a)遇到了一只黄金哥布林(HP x)。 小春每…...
【路径规划】基于前向动态规划算法在地形上找到最佳路径(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
spring boot maven打包jar包太大,怎么办?这个方法解决你的烦恼
在springboot maven项目中,有两种打包方式,一种是war包,一种是jar,今天我们讲一下jar的打包方式。但是在jar包打包只要我们发现,我们的项目jar太大了,每次上传到服务器的时候非常的慢,接下来我们…...
Spring之AOP理解及使用
文章目录AOP是什么AOPSpring的通知类型1.Before通知2. AfterReturning通知3.AfterThrowing通知4. After通知5. Around通知动态代理JDK动态代理CGLib动态代理动态代理的代码展示AOP使用切面类的配置最后大家好,我是Leo!今天给大家带来的是关于Spring AOP的…...
微信小程序和webview使用postMessage交互
小程序和webview能交互,但是没有你想的那个完美小程序向webview传递参数只能使用url携带参数webview向小程序传递参数可以使用postMessage, 但是注意了,postMessage只会在特定的时机执行,请看官方文档由此可见,如果你想点击webvie…...
pytorch-自动求导机制,构建计算图进行反向传播,需要注意inplace操作导致的报错,梯度属性变化
PyTorch 作为一个深度学习平台,在深度学习任务中比 NumPy 这个科学计算库强在哪里呢?一是 PyTorch 提供了自动求导机制,二是对 GPU 的支持。由此可见,自动求导 (autograd) 是 PyTorch,乃至其他大部分深度学习框架中的重…...
【Project】项目管理软件学习笔记
一、前言使用Project制定项目计划步骤大致如下:以Project2013为例,按照上图步骤指定项目计划。二、实施2.1 创建空白项目点击文件——新建——空白项目,即完成了空白项目的创建,在此我把该项目保存为60mm项目管理.mpp,…...
【算法设计-分治思想】快速幂与龟速乘
文章目录1. 快速幂2. 龟速乘3. 快速幂取模4. 龟速乘取模5. 快速幂取模优化1. 快速幂 算法原理: 计算 311: 311 (35)2 x 335 (32)2 x 332 3 x 3仅需计算 3 次,而非 11 次 计算 310: 310 (35)235 (32)2 x 332 3 x 3仅需计算…...
Kafka(十一) 如何保证数据的不重复和不丢失
数据不丢失 1)从生产端:acks -1,(ack应答机制)从生产端到节点端,当所有isr集合里的节点备份完毕后返回成功; 2)从节点端:每个partition至少需要一个isr节点࿰…...
解决树莓派 bullseye (11) 系统无法通过 xrdp 远程连接的问题
我手上有一台树莓派 4B,使用官方镜像烧录器烧录老版本操作系统 buster (10) 时可以正常通过 Windows 远程桌面连接上,但换成最新的 bullseye (11) 系统后却无法正常连接远程桌面。 问题复现: 使用官方镜像烧录器烧录,配置用户名为…...
微信公众号历史作品定向采集
最近有遇到微信公众号历史作品采集的需求,这里做一下记录, 登录自己注册好的的微信公众号后台进入创作界面,点击右上角的引用: 弹出如下界面: 选择查找公众号文章,输入要查找的公众号: 回车: 同时就可以打开F12开始抓包,选择公众号点击进入: appmsg?action=li…...
Vue学习笔记(3)
3.1 计算属性和监视属性 3.1.1 计算属性 计算属性是一种计算值的方式,可以根据其他属性的值来动态地计算新的属性值。计算属性可以缓存计算结果,当依赖的属性发生改变时,才会重新计算。在Vue中,可以使用computed选项来定义计算属…...
Marshmallow 库
文章目录Marshmallow 库介绍使用序列化反序列化参数介绍schema参数fields 参数钩子函数内置验证器Meta 属性Marshmallow 库 介绍 marshmallow是一个用来将复杂的orm对象与python原生数据类型之间相互转换的库,简而言之,就是实现object -> dict&#…...
【BN层的作用】论文阅读 | How Does Batch Normalization Help Optimization?
前言:15年Google提出Batch Normalization,成为深度学习最成功的设计之一,18年MIT团队将原论文中提出的BN层的作用进行了一一反驳,重新揭示BN层的意义 2015年Google团队论文:【here】 2018年MIT团队论文:【h…...
re.sub()用法的详细介绍
一、前言 在字符串数据处理的过程中,正则表达式是我们经常使用到的,python中使用的则是re模块。下面会通过实际案例介绍 re.sub() 的详细用法,该函数主要用于替换字符串中的匹配项。 二、函数原型 首先从源代码来看一下该函数原型…...
【Python数据挖掘入门】2.2文本分析-中文分词(jieba库cut方法/自定义词典load_userdict/语料库分词)
中文分词就是将一个汉字序列切分成一个一个单独的词。例如: 另外还有停用词的概念,停用词是指在数据处理时,需要过滤掉的某些字或词。 一、jieba库 安装过程见:https://blog.csdn.net/momomuabc/article/details/128198306 ji…...
Meta利用视觉信息来优化3D音频模型,未来将用于AR/VR
我们知道,Meta为了给AR眼镜打造智能助手,专门开发了第一人称视觉模型和数据集。与此同时,该公司也在探索一种将视觉和语音融合的AI感知方案。相比于单纯的语音助手,同时结合视觉和声音数据来感知环境,可进一步增强智能…...
openlayers加载离线地图并实现深色地图
问题背景 我们自己一直使用的openlayergeoserver自己发布的地图,使用的是矢量地图。但是由于政府地图大都使用为天地图,所以需要将geoserver的矢量地图更改为天地图,并且依旧是搭配openlayers来使用。 解决步骤 一:加载离线地图&a…...
socket,tcp,http三者之间的区别和原理
目录 一、OSI模型也称七层网络模型 1、TCP/IP连接 1.1三次握手与四次挥手的简单理解:(面试重点) 1.2面试考题:如果已经建立了连接,但是客户端突然出现故障了怎么办? 1.3 socket、tcp、http三者之间有什…...
红日(vulnstack)1 内网渗透ATTCK实战
环境准备 靶机链接:百度网盘 请输入提取码 提取码:sx22 攻击机系统:kali linux 2022.03 网络配置: win7配置: kali配置: kali 192.168.1.108 192.168.111.129 桥接一块,自定义网卡4 win7 1…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
