牛客周赛 Round 26 解题报告 | 珂学家 | 0-1 BFS + 状态机DP


前言


整体评价

T3是一道0-1 BFS题, 这样时间复杂度可以控制在O(n*m), 也可以用优先队列。

T4这类题型,在牛客Round周赛系列出现好多次了,要么状态机DP,要么容斥,如果n很大,就用矩阵幂优化。


欢迎关注

珂朵莉 牛客周赛专栏

珂朵莉 牛客小白月赛专栏


A. 小红的整数操作

思路:同余分组

对k进行取模分组,同余的任意两个数,一定可以构造成一样

from collections import Countern, k = list(map(int, input().split()))
arr = list(map(int, input().split()))cnt = Counter()
for v in arr:cnt[v % k] += 1res = max(cnt.values())print (res)

B. 小红的01串

思路:奇偶分析,找规律

可以枚举最终趋同的数是0,还是1

同时相邻2数翻转,其0,1本身个数的奇偶是不改变的

这样可以发现,如果0的个数,1的个数都是奇数,必然是死局,无法构造。

t = int(input())while t > 0:t -= 1s = input()n0, n1 = 0, 0for c in s:if c == '0':n0 += 1else:n1 += 1if n0 % 2 == 1 and n1 % 2 == 1:print ("No")else:print ("Yes")

C. 小红闯沼泽地

思路:0-1 BFS,当然用优先队列寻路,也是的可以

这边采用0-1 BFS,应该时间复杂度最低

from collections import deque
# from typings import infh, w = list(map(int, input().split()))grids = []
for i in range(h):row = list(map(int, input().split()))grids.append(row)deq = deque()
deq.append((0, 0))dp = [[0x3f3f3f3f] * w for _ in range(h)]# 0-1 bfs
# 或者优先队列dp[0][0] = 0dirs = [(1, 0), (0, -1), (0, 1)]while len(deq) > 0:y, x = deq.popleft()for dy, dx in dirs:ty, tx = y + dy, x + dxif 0 <= ty < h and 0 <= tx < w:cost = 2 if grids[y][x] != grids[ty][tx] else 1if dp[ty][tx] > dp[y][x] + cost:dp[ty][tx] = dp[y][x] + costif cost == 1:deq.appendleft((ty, tx))else:deq.append((ty, tx))print (dp[h - 1][w - 1])

D. 小红的漂亮串(二)

思路:状态机DP

引入7个状态

  • any (0个red): 0
  • r: 1
  • re: 2
  • red: 3
  • r(带1个red): 4
  • re(带1个red): 5
  • red(带2个red): 6

因为n为10^6, 所以线性处理下就行了

mod = 10 ** 9 + 7n = int(input())# other: 0
# r: 1
# re: 2
# red: 3
# red, r: 4
# red, re: 5
# red, red: 6# 状态机DP
dp = [25, 1, 0, 0, 0, 0, 0]for i in range(1, n):dp2 = [0] * 7dp2[0] = (dp[0] * 25 + dp[1] * 24 + dp[2] * 24) % moddp2[1] = (dp[0] + dp[1] + dp[2]) % moddp2[2] = dp[1]dp2[3] = (dp[2] + dp[3] * 25 + dp[4] * 24 + dp[5] * 24) % moddp2[4] = (dp[3] + dp[4] + dp[5]) % moddp2[5] = dp[4]dp2[6] = (dp[5] + dp[6] * 26) % moddp = dp2print (dp[6])

写在最后

alt

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

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

相关文章

MATLAB中xcorr函数用法

目录 语法 说明 示例 两个向量的互相关 向量的自相关 归一化的互相关 xcorr函数的功能是返回互相关关系。 语法 r xcorr(x,y) r xcorr(x) r xcorr(___,maxlag) r xcorr(___,scaleopt) [r,lags] xcorr(___) 说明 r xcorr(x,y) 返回两个离散时间序列的互相关。互相…

V8引擎-隐藏类

1、动态语言和静态语言 静态语言的效率更高 javaScript是一种动态语言&#xff0c;对象的属性在运行时可以被修改。因此&#xff0c;当V8使用一个对象时&#xff0c;比如使用start.x来访问对象start的属性x时&#xff0c;V8并不知道对象中是否存在x属性&#xff0c;也不知道x属…

【C Primer Plus第六版 学习笔记】 第十六章 C预处理器和C库

有基础&#xff0c;进阶用&#xff0c;个人查漏补缺 第十五章的内容之前学过&#xff0c;跳过 预处理之前&#xff0c;编译器必须对该程序进行一些翻译处理 首先把源代码中出现的字符映射到原字符集 其次编译器定位每个反斜杠后面跟着换行符的实例&#xff0c;并删除它们&…

在 Linux 系统中,常用的音频命令alsamixer、amixer、aplay、arecord

在 Linux 系统中&#xff0c;常用的音频命令主要包括以下几个&#xff1a; 1. alsamixer alsamixer 是一个交互式的音频混音控制台程序&#xff0c;它提供了对音量、通道、增益等设置的直观界面。 2. amixer amixer 命令用于管理音频设置&#xff0c;可以显示和调整音量、切换…

各种编程语言的特点及应用领域

1、C语言 特点&#xff1a;C语言是一种高效、快速、可移植、结构化的编程语言&#xff0c;具有广泛的应用领域。C语言不提供诸如面向对象编程&#xff08;OOP&#xff09;等高级语言所支持的抽象层次&#xff0c;但可以方便地访问底层硬件&#xff0c;因此常被用于系统编程和嵌…

一种安防场景下融合注意力机制和时空图卷积神经网络的人体动作识别方法与流程

本发明涉及模式识别与计算机视觉领域&#xff0c;尤其涉及一种安防场景下融合注意力机制和时空图卷积神经网络的人体动作识别方法。 背景技术&#xff1a; 视觉一直是人类获取外界信息的最重要、最直观的途径&#xff0c;据有关统计&#xff0c;人类获取信息的80&#xff05;都…

nginx 多端口部署多站点

目录 1.进行nginx.conf 2.复制粘贴 3.修改端口及站点根目录 4. 网站上传 1.进行nginx.conf 在 nginx 主要配置文件 nginx.conf 中&#xff0c;server 是负责一个网站配置的&#xff0c;我们想要多个端口访问的话&#xff0c;可以复制多个 server 先进入到 nginx.conf 中 …

「微服务」Saga 模式 如何使用微服务实现业务事务-第二部分

在上一篇文章中&#xff0c;我们看到了实现分布式事务的一些挑战&#xff0c;以及如何使用Event / Choreography方法实现Saga的模式。在本文中&#xff0c;我们将讨论如何通过使用另一种类型的Saga实现&#xff08;称为Command或Orchestration&#xff09;来解决一些问题&#…

vue3+echarts可视化——记录我的2023编程之旅

文章目录 ⭐前言⭐2023我在csdn的旅途痕迹&#x1f496;node系列文章&#x1f496;vue3系列文章&#x1f496;python系列文章&#x1f496;react系列文章&#x1f496;js拖拽相关文章&#x1f496;小程序系列文章&#x1f496;uniapp系列文章 ⭐可视化布局&#x1f496; git 数…

【VRTK】【VR开发】【Unity】18-VRTK与Unity UI控制的融合使用

课程配套学习项目源码资源下载 https://download.csdn.net/download/weixin_41697242/88485426?spm=1001.2014.3001.5503 【背景】 VRTK和Unity自身的UI控制包可以配合使用发挥效果。本篇就讨论这方面的实战内容。 之前可以互动的立体UI并不是传统的2D UI对象,在实际使用中…

MockServer简单使用记录

下载源码 下载git源码&#xff1a;git clone https://github.com/mock-server/mockserver.git 通过执行文件编译成jar包 ./mvnw clean package 可能会报错。 启动命令 java -jar ./mockserver-netty-jar-with-dependencies.jar -serverPort 1080 -proxyRemotePort 80 -pro…

(self-supervised learning)Event Camera Data Pre-training

Publisher: ICCV 2023 MOTIVATION OF READING: 自监督学习、稀疏事件 NILM link: https://arxiv.org/pdf/2301.01928.pdf Code: GitHub - Yan98/Event-Camera-Data-Pre-training 1. Overview Contributions are summarized as follows: 1. A self-supervised framework f…

如何下载LANDSAT数据

LANDSAT&#xff08;Land Remote Sensing Satellite&#xff09;是美国国家航空航天局&#xff08;NASA&#xff09;与美国地质调查局&#xff08;USGS&#xff09;合作推出的一系列卫星&#xff0c;旨在提供地球表面的高分辨率遥感数据。LANDSAT卫星系列始于1972年&#xff0c…

24届Java开发岗秋招春招面试题目合集【持续更新ing】

声明&#xff1a; 背景&#xff1a;本人为24届双非硕校招生&#xff0c;已经完整经历了一次秋招&#xff0c;拿到了三个offer。在这里分享一下我部分面试的题目&#xff0c;若有问题&#xff0c;可以评论私信与我沟通。我会在这里持续分享&#xff0c;有需要的可以收藏一波。 文…

win10连上了wifi热点但是无法上网

我的情况是能正常连接wifi热点&#xff08;手机连接这个热点能上网&#xff0c;说明这个wifi热点是正常的&#xff09; 但是没法上网 打开cmd窗口发现能ping通百度&#xff0c;掘金&#xff0c;csdn这些网址。这就更奇怪了&#xff01;于是根据上面的提示&#xff0c;检查了代…

【数据结构和算法】 相等行列对

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 三层循环 2.2 哈希 二层循环 三、代码 3.1 三层循环 3.2 哈希 二层循环 四、复杂度分析 4.1 …

189.【2023年华为OD机试真题(C卷)】单行道汽车通行时间(模拟题—JavaPythonC++JS实现)

请到本专栏顶置查阅最新的华为OD机试宝典 点击跳转到本专栏-算法之翼:华为OD机试 🚀你的旅程将在这里启航!本专栏所有题目均包含优质解题思路,高质量解题代码,详细代码讲解,助你深入学习,深度掌握! 文章目录 189.【2023年华为OD机试真题(C卷)】单行道汽车通行时…

基于STM32+QT设计的无人超市消费系统_139

基于STM32+QT设计的无人超市消费系统 一、前言 1.1 研究背景 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 超市形式在我国于20世纪90年代初期起步,现已成为我国零售业的一种重要形态…

LeetCode74二分搜索优化:二维矩阵中的高效查找策略

题目描述 力扣地址 给你一个满足下述两条属性的 m x n 整数矩阵&#xff1a; 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target &#xff0c;如果 target 在矩阵中&#xff0c;返回 true &#xff1b;否则&…

抖店和商品橱窗有什么区别?新手应该选哪个?

我是电商珠珠 临近年底了&#xff0c;有的人已经开始为下一年筹谋&#xff0c;有的去抖音做账号做直播带货&#xff0c;不会直播带货的就想尝试做下抖店&#xff0c;来为以后的经济打基础。 刚想要接触却对这类有些迷糊&#xff0c;发现商品橱窗和抖店都可以卖货&#xff0c;…