[蓝桥杯复盘] 第 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)

六、参考链接

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

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

相关文章

『亚马逊云科技产品测评』活动征文|阿里云服务器亚马逊服务器综合评测

授权声明&#xff1a;本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 Developer Centre, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道 文章目录 引言一、亚马逊&阿里云发展历史介绍1.1 亚马逊发展历史1.2…

Centos, RockyLinux 常用软件安装汇总

一、基本指令&#xff1a; 命令作用clear清屏pwd显示当前路径cat / more显示文本文档uname -a查看当前版本hostnamectl查看当前版本cat /etc/redhat-release查看当前版本free查看剩余内存df -h[查看磁盘剩余空间]du -sh 查看文件夹名"dir"占用的空间lsof -i:8080查看…

【原创】java+swing+mysql车辆维修管理系统设计与实现

摘要&#xff1a; 车辆维修管理系统是一个用于管理和追踪车辆维修过程的系统&#xff0c;它能够提高效率&#xff0c;减少错误&#xff0c;并提供详细的车辆历史记录&#xff0c;可以帮助车辆维修企业实现信息化管理&#xff0c;提高工作效率和客户满意度&#xff0c;降低运营…

DevEco studio配置自己的虚拟环境

开始使用DevEco studio时使用的时华为预置的手机&#xff0c;通过网络访问&#xff0c;但是近期发现有两点问题 网络不稳定的时候机器很卡现在资源很难使用 DevEco提供了自定义环境的搭建&#xff0c;从而解决上面的问题 这里有几点问题需要硬盘至少10G空闲&#xff08;应该问题…

【考研数据结构代码题6】构建二叉树及四大遍历(先中后层)

题目&#xff1a;请你编写完整的程序构建一棵二叉树并对其进行先序遍历、中序遍历、后序遍历与层次遍历&#xff0c;分别打印并输出遍历结果 难度&#xff1a;★★★ 二叉树的存储结构 typedef struct Node{char data;//数据域struct Node* left;//左子树struct Node* right;//…

【评论送书】十本架构师成长和软件架构技术相关的好书(可以任选)

正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 参与规则 本次送书1~5本参与方式&#xff1a;关注博主、点赞、收藏、评论&#xff08;从评论区…

[工业自动化-18]:西门子S7-15xxx编程 - 软件编程 - PLC用于工业领域的嵌入式系统:硬件原理图、指令系统、系统软件架构、开发架构等

目录 前言&#xff1a; 一、PLC的硬件电路原理 1.1 硬件框图 1.2 硬件模块详解 &#xff08;1&#xff09;CPU &#xff08;2&#xff09;存储器 &#xff08;3&#xff09;输入/输出&#xff08;I/O&#xff09;模块 &#xff08;4&#xff09;编程器 &#xff08;5&a…

Flume(一)【Flume 概述】

前言 今天实在不知道学点什么好了&#xff0c;早上学了3个多小时的 Flink &#xff0c;整天只学一门技术是很容易丧失兴趣的。那就学点新的东西 Flume&#xff0c;虽然 Kafka 还没学完&#xff0c;但是大数据生态圈的基础组件也基本就剩这倆了。 Flume 概述 生产环境中的数据一…

一道 python 数据分析的题目

python 数据分析的题目。 做题方法&#xff1a;使用 pandas 读取数据&#xff0c;然后分析。 知识点&#xff1a;pandas&#xff0c;正则表达式&#xff0c;py知识。 过程&#xff1a;不断使用 GPT&#xff0c;遇到有问题的地方自己分析&#xff0c;把分析的结果告诉 GPT&am…

点成方案丨使用细胞计数仪监控CAR-T细胞疗法的生产

一、概述 嵌合抗原受体&#xff08;CAR&#xff09;是经过改造后赋予T细胞靶向特定抗原的新能力的受体蛋白。这些受体是嵌合的&#xff0c;因为它们将抗原结合和T细胞激活功能结合到一个受体中。CAR-T细胞疗法使用经过CAR改造的T细胞来治疗癌症。CAR-T免疫疗法的前提是修改T细…

PHP原生类总结利用

SPL介绍 SPL就是Standard PHP Library的缩写。据手册显示&#xff0c;SPL是用于解决典型问题(standard problems)的一组接口与类的集合。打开手册&#xff0c;正如上面的定义一样&#xff0c;有许多封装好的类。因为是要解决典型问题&#xff0c;免不了有一些处理文件…

如何使用iPhone15在办公室观看家里电脑上的4k电影?

如何使用iPhone15在办公室观看家里电脑上的4k电影&#xff1f; 文章目录 如何使用iPhone15在办公室观看家里电脑上的4k电影&#xff1f;1.使用环境要求&#xff1a;2.下载群晖videostation&#xff1a;3.公网访问本地群晖videostation中的电影&#xff1a;4.公网条件下使用电脑…

论文浅尝 | 用于开放式文本生成的事实增强语言模型

笔记整理&#xff1a;李煜&#xff0c;东南大学硕士&#xff0c;研究方向为知识图谱 链接&#xff1a;https://proceedings.neurips.cc/paper_files/paper/2022/hash/df438caa36714f69277daa92d608dd63-Abstract-Conference.html 1. 动机 生成式语言模型&#xff08;例如 GPT-3…

CNCC 2023收官,Milvus Cloud与行业大咖共话向量数据库系统

近期,CNCC 2023 在沈阳圆满结束,紧凑、前沿的 129 场技术论坛让人印象深刻。据悉,这 129 场技术论坛涵盖人工智能、安全、计算+、软件工程、教育、网络、芯片、云计算等 30 余个方向。Zilliz 受邀参与【智能时代的大数据系统】技术论坛。 智能时代的到来,无疑给社会经济和日…

【深度学习】SimSwap: An Efficient Framework For High Fidelity Face Swapping 换脸,实战

代码&#xff1a;https://github.com/neuralchen/SimSwap 文章目录 摘要介绍RELATED WORK实验结论代码实操 SimSwap是一个高保真度人脸交换的高效框架。它将源脸的身份转移到目标脸上&#xff0c;同时保留目标脸的属性。该框架包括ID注入模块&#xff08;IIM&#xff09;&#…

Avatar虚拟形象解决方案,趣味化的视频拍摄与直播新体验

企业们正在寻找新的方式来吸引和保持观众的注意力,一种新兴的解决方案就是使用Avatar虚拟形象技术&#xff0c;这种技术可以让用户在视频拍摄或直播场景中&#xff0c;以自定义的数字人形象出现&#xff0c;同时保持所有的表情和脸部驱动。美摄科技正是这个领域的领军者&#x…

Redhat Linux v8.2 实时内核环境配置及参数调优

Redhat-Linux V8.2 实时内核环境配置及参数调优 -------物理机 & 虚拟机 一、前言 本文档包含有关Redhat Linux for Real Time的基本安装和调试信息。许多行业和组织需要极高性能的计算&#xff0c;并且可能需要低且可预测的延迟&#xff0c;尤其是在金融和电信行业中。延…

【工艺库】SMIC数字后端工艺库

工艺库文件 Calibredigital文件夹apollolefprimetimesynopsys TD系列文件夹 本来是想找一个工艺库&#xff0c;想要其包含逻辑综合和SPICE Model相关的库文件&#xff0c;但是找了很久也没有直接找到想要的&#xff0c;主要原因还是自己对工艺库文件的构成不是很清楚&#xff0…

《QT从基础到进阶·二十六》绘制多个图形项(QGraphicsRectItem,QGraphicsLineItem,QGraphicsPolygonItem)

这个demo用QT实现了对多个图形项的绘制&#xff0c;包括矩形的绘制&#xff0c;直线的绘制和多边形的绘制&#xff0c;是之前一章中绘制矩形的增强版&#xff0c;之前一章节关于矩形的绘制可以参考&#xff1a;《QT从基础到进阶十五》用鼠标绘制矩形&#xff08;QGraphicsView、…

Web安全:Vulfocus 靶场搭建.(漏洞集成平台)

Web安全&#xff1a;Vulfocus 靶场搭建.&#xff08;漏洞集成平台&#xff09; Vulfocus 是一个包含了多种漏洞靶场的镜像。每个靶场都有具体的漏洞环境和攻击点。Vulfocus 的靶场包括了 Web 安全漏洞、系统安全漏洞、网络安全漏洞、密码学漏洞等多种类型。通关这个靶场我们可以…