[蓝桥杯复盘] 第 3 场双周赛20231111
[蓝桥杯复盘] 第 3 场双周赛20231111
- 总结
- 深秋的苹果
- 1. 题目描述
- 2. 思路分析
- 3. 代码实现
- 鲜花之海
- 1. 题目描述
- 2. 思路分析
- 3. 代码实现
- 斐波拉契跳跃
- 2. 思路分析
- 3. 代码实现
- 星石传送阵
- 2. 思路分析
- 3. 代码实现
- 六、参考链接
总结
- 做了后4题。https://www.lanqiao.cn/oj-contest/challenge-3/
- T5 二分
- T6 数学公式
- T7 博弈
- T8 优化建图+dij

深秋的苹果
链接: 深秋的苹果
1. 题目描述

2. 思路分析
- 二分即可。但这题上界很大,无脑1e18会wa,实测2e18能过。
3. 代码实现
# ms
def solve():n, m = RI()arr = RILST()p = s = 0for v in arr:p += v*ss += vdef ok(x):cnt = 1s = c =0for v in arr:c += v * ss += vif c > x:c = 0s = vcnt += 1if cnt > m:return Falsereturn Trueprint(lower_bound(0, p, key=ok))# print(lower_bound(0, 2*10**18, key=ok))
鲜花之海
链接: 鲜花之海
1. 题目描述

2. 思路分析
- 画一下矩阵图,发现按照和可以分为左上半区和右下半区,是一个分段函数。
- 那么分类讨论,看看k落在第几条↙斜线上,由于是等差数列求和,需要解一元二次方程。
3. 代码实现
"""
x*(x+1)//2 <= k
x^2 + x - k*2<= 0
x <= (-1 +- sqrt(1 + 4 * k*2))/2(n-1+n-1-x+1)*x//2 <= k
"""# ms
def solve():n, k = RI()left = (1 + n - 1) * (n - 1) // 2mid = nif k <= left + mid:x = int((-1 + sqrt(1 + 4 * k * 2)) / 2)s = x * (x + 1) // 2h = x + 1if s == k:print(h - 1, 1)else:h += 1k -= sprint(k, h - k)else:k -= left + mid# print(left,mid,k)x = int((2 * n - 1 - sqrt((2 * n - 1) ** 2 - 4 * 2 * k)) / 2)s = (n - 1 + n - 1 - x + 1) * x // 2# print(x,s)h = n + x + 1if s == k:print(n, h - n)else:h += 1k -= s# print(x,h,k)print(2 + x + k - 1, h - (2 + x + k - 1))
斐波拉契跳跃
链接: 斐波拉契跳跃

2. 思路分析
- 博弈题优先考虑记忆化搜索。
- 这题转移和状态都是走斐波那契数列的,所以状态和转移都很少,因此可以过。
3. 代码实现
fib = [0, 1, 2]
while fib[-1] <= 10 ** 5:fib.append(fib[-1] + fib[-2])
pfib = {v: i for i, v in enumerate(fib)}# ms
def solve():n, = RI()a = RILST()pos = [0] * nfor i, v in enumerate(a):pos[v - 1] = i@lru_cache(None)def dfs(p, d): # 从p位置出发,上一步长d时,能否赢for v in fib[pfib[d] + 1:]:if v >= n: breakif p + v < n and a[p + v] > a[p]:if not dfs(p + v, v): # 对方不能赢return Trueif p - v >= 0 and a[p - v] > a[p]:if not dfs(p - v, v):return Truereturn Falsefor st in range(n):print(['Little Qiao', 'Little Lan'][dfs(st, 0)])
星石传送阵
链接: 星石传送阵


2. 思路分析
- 题面太乱了,省流:每个位置i的f(x)是x分解质因数求和modn+1;i和f可以互达;f相同的i也可以互达。问a到b最短路。
- 那么由于有很多节点的f可能是相同的,他们都可以互达的话就是稠密图,考虑增加中间虚拟节点连接他们。
- 由于f是对n取模后+1的,那么新节点可以用[n+1,2n]这些节点。
- 那么u->f->v这算1次跳跃,每条边边权应该是0.5;正常互条的节点边权是1;实现时全部乘2避免处理浮点数。
- 另一种思路,按f分组,直接BFS,可以省去一个log。
- bfs时,对每个节点处理本组f记录的邻居后,直接移除这整个组,因为他们已经访问过了。这样就可以避免稠密图的边过多造成的TLE。
3. 代码实现
class PrimeTable:def __init__(self, n: int) -> None:self.n = nself.primes = primes = [] # 所有n以内的质数self.min_div = min_div = [0] * (n + 1) # md[i]代表i的最小(质)因子min_div[1] = 1# 欧拉筛O(n),顺便求出min_divfor i in range(2, n + 1):if not min_div[i]:primes.append(i)min_div[i] = ifor p in primes:if i * p > n: breakmin_div[i * p] = pif i % p == 0:breakdef prime_factorization(self, x: int):"""分解质因数,复杂度1. 若x>n则需要从2模拟到sqrt(x),如果中间x降到n以下则走2;最坏情况,不含低于n的因数,则需要开方复杂度2. 否则x质因数的个数,那么最多就是O(lgx)"""n, min_div = self.n, self.min_divfor p in range(2, int(x ** 0.5) + 1):if x <= n: breakif x % p == 0:cnt = 0while x % p == 0: cnt += 1; x //= pyield p, cntwhile 1 < x <= n:p, cnt = min_div[x], 0while x % p == 0: cnt += 1; x //= pyield p, cntif x >= n and x > 1:yield x, 1pt = PrimeTable(10 ** 6)def solve():n, a, b = RI()arr = RILST()g = [[] for _ in range(2 * n + 3)]for i, v in enumerate(arr, start=1):f = sum(x * y for x, y in pt.prime_factorization(v)) % n + 1ff = f + n + 1 # 跳到虚拟节点,边权0.5,实际处理边权全部乘2g[ff].append((i, 1))g[i].append((ff, 1))if f <= n: # 互跳节点g[i].append((f, 2))g[f].append((i, 2))q = [(0, a)]dis = [inf] * (2 * n + 3)dis[a] = 0while q:# print(q)c, u = heappop(q)if c > dis[u]: continueif u == b:return print(c // 2)for v, w in g[u]:if c + w < dis[v]:dis[v] = c + wheappush(q, (c + w, v))print(-1)
六、参考链接
- 无
相关文章:
[蓝桥杯复盘] 第 3 场双周赛20231111
[蓝桥杯复盘] 第 3 场双周赛20231111 总结深秋的苹果1. 题目描述2. 思路分析3. 代码实现 鲜花之海1. 题目描述2. 思路分析3. 代码实现 斐波拉契跳跃2. 思路分析3. 代码实现 星石传送阵2. 思路分析3. 代码实现 六、参考链接 总结 做了后4题。https://www.lanqiao.cn/oj-contes…...
浅析移动端车牌识别技术的工作原理及其过程
随着社会经济的发展与汽车的日益普及带来巨大的城市交通压力,在此背景下,智能交通系统成为解决这一问题的关键。而在提出发展无线智能交通系统后,作为智能交通的核心,车牌识别系统需要开始面对车牌识别移动化的现实需求。基于实现车牌识别移动化这一目标,一种基于Android移动终…...
计算机网络期末复习-Part4
1、UDP和TCP的比较 TCP提供可靠传输;UDP提供不可靠传输。TCP有连接;UDP无连接(减小时延)。TCP提供流量控制;UDP不提供流量控制。TCP提供拥塞控制;UDP不提供拥塞控制(传输快)。TCP提…...
解决EnableKeyword(“_Emission“)运行状态不起作用
我使用的是Standard Shader,一开始“_Emission”没有开启 当我运行下面的代码,可以看到Inspector窗口已经生效,然而物体本身并没有重新开始渲染,反射没有开启 public GameObject go; // Start is called before the first frame…...
管理能力测评,如何提升管理能力?
管理能力是综合能力的体现,通常也解读为组织管理能力,如果要再细分的话,可能还包括有沟通能力,协调能力,组织能力,执行力和专业能力等等。不过没有办法说的太细节,因为每个部分铺开了都是一个独…...
基于工业智能网关的汽车充电桩安全监测方案
近年来,我国新能源汽车产业得到快速发展,电动车产量和销量都在持续增长,不仅国内市场竞争激烈,而且也远销海外,成为新的经济增长点。但与此同时,充电设施的运营却面临着安全和效率的双重挑战。 当前的充电桩…...
基于JavaWeb+SpringBoot+微信小程序的酒店商品配送平台系统的设计和实现
基于JavaWebSpringBoot微信小程序的酒店商品配送平台系统的设计和实现 源码传送入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码传送入口 前言 本章内容概括了基于微信小程序的酒店商品配送平台的可行性分析、系统功…...
Android修行手册-POI操作Excel实现超链接并且变为蓝色
点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&…...
Halcon WPF 开发学习笔记(2):Halcon导出c#脚本
文章目录 前言HalconC#教学简单说明如何二开机器视觉 前言 我目前搜了一下我了解的机器视觉软件,有如下特点 优点缺点兼容性教学视频(B站前三播放量)OpenCV开源,免费,因为有源码所以适合二次开发学习成本极高,卡学历。研究生博士…...
Scrum敏捷开发全流程,3款必备的项目管理工具!
Scrum是一种敏捷方法,致力于帮助团队高效地协作和完成复杂的项目。它强调迭代和快速迭代、自组织、快速响应变化等原则,使得项目开发变得更加灵活和高效。 在Scrum敏捷开发过程中,项目管理工具是必不可少的。下面介绍3款常用的敏捷开发工具…...
基于Quartz实现动态定时任务
生命无罪,健康万岁,我是laity。 我曾七次鄙视自己的灵魂: 第一次,当它本可进取时,却故作谦卑; 第二次,当它在空虚时,用爱欲来填充; 第三次,在困难和容易之…...
hdlbits系列verilog解答(计算向量中1出现次数)-41
文章目录 一、问题描述二、verilog源码三、仿真结果一、问题描述 “频次计数”电路对输入向量中的“1”数进行计数。为 255 位输入向量构建频次计数电路。 Module Declaration module top_module( input [254:0] in, output [7:0] out ); 二、verilog源码 module top_module…...
2023年最新的前端面试收集(1)
2023年最新的前端面试收集 一、你在项目中做的性能优化的事情有哪些网络优化页面渲染优化JS优化图片优化webpack打包优化vue优化react优化 二、webworker中为什么能提升js执行的性能三、微前端 一、你在项目中做的性能优化的事情有哪些 网络优化 DNS预解析 link标签的rel属性设…...
flutter实现上拉加载下拉刷新
效果如下: flutter实现上拉加载下拉刷新 使用到的库是easy_refresh 安装请查看官网 接口用的是提供的接口https://reqres.in/ 请求接口用到的库是dio 下面主要是介绍如何使用easy_refresh实现上拉加载数据,详细学习其它例子请查看easy_refresh main…...
tomcat+idea--如何在idea上发布项目
对应于idea2022以后的版本 (一)如何配置idea上的tomcat? 1、新建一个项目,左上角File,new,project,新建后就和普通的java项目一样。 2、然后点击项目名,右键选择“Add framework s…...
考研数据结构单链表的增删改查看这一篇就够了
目录 一. 单链表的特点 1.1 解引用拓展 🤖 二. 单链表的操作 2.1不带头节点的操作 2.1.1 打印 2.1.1.1 创建结点 2.1.2 尾插(需要二级指针) 注意形参的值不改变实参:(精髓部分) 2.1.3 头插 2.1.4…...
Windows查看端口占用情况
Windows如何查看端口占用情况 方法1. cmd命令行执行netstat命令,查看端口占用情况 netstat -ano 以上命令输出太多信息,不方便查看,通过如下命令搜索具体端口占用情况,例如:8080端口 netstat -ano | findstr "…...
Python:词法分析(行结构与显式、隐式行拼接)
相关阅读 Pythonhttps://blog.csdn.net/weixin_45791458/category_12403403.html?spm1001.2014.3001.5482 1、逻辑结构 一个Python程序由许多逻辑行组成,字面意义上的一行指的是末尾有换行符(\n),但在不同的情况下,行末尾的换行符(\n)可能有…...
前端Vue 结合xlxs库实现解析excel文件,并动态组装表头!
目录 1.前言2.数据定义3. 页面布局4.上传之前的事件5.解析excel文件,并组装系统表头与excel表头的对应关系6.下拉框改变事件 1.前言 最近有一个需求,就是用户可以任意导入一个自定义的excel文件,让用户可以自己选择,组装表头的对应关系&…...
RabbitMQ集群配置以及负载均衡配置
RabbitMQ集群配置以及负载均衡配置 环境配置集群配置安装rabbitmq启动rabbitmq开启远程登录添加用户并且授权用户添加数据存放目录和日志存放目录查看端口拷⻉erlang.cookie将mq-2、mq-3作为内存节点加⼊mq-1节点集群中查看集群状态添加一个新的队列 RabbitMq负载均衡配置-HAPr…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
