牛客周赛 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.hqwc.cn/news/315131.html

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

相关文章

LiveGBS流媒体平台GB/T28181常见问题-如何配置快照目录快照存储默认目录目录如何配置

LiveGBS流媒体平台GB/T28181常见问题-如何配置快照目录快照存储默认目录目录如何配置 1、快照目录2、指定快照目录3、搭建GB28181视频直播平台 1、快照目录 部署LiveGBS后&#xff0c; 再查看通道播放后 或是 获取通道快照后&#xff0c;就会在LiveSMS部署的服务器里面存储对应…

学Python到底能干什么?看这里就知道

学Python到底能干什么&#xff1f;看这里就知道 | Python是一种代表简单主义思想的语言&#xff0c;极其容易上手&#xff0c;并且功能非常强大&#xff0c;这也是我的第二计算机语言。 个人可以使用Python去做哪些事呢&#xff1f; ✅办公自动化场景&#xff1a; 每天要处理…

南昌找工作用什么APP或者招聘网站

南昌找工作用吉鹿力招聘网 通过吉鹿力招聘网&#xff0c;可以随时查看最新职位&#xff0c;跟踪简历投递动态&#xff0c;与正在进行招聘的CEO、部门负责人、HR在线沟通&#xff0c;查看其他候选人面试该职位后对面试官、公司环境的面试评价等&#xff0c;为求职者提供参考。 …

2024 年 9 款简单好用的 Windows 分区管理器软件

了解适用于 Windows 11 和 Windows 7 的 Windows 分区管理器的概念。本教程还列出了分区管理器软件&#xff1a; 购买新电脑&#xff1f;担心磁盘存储空间不足&#xff1f;你听说过分区吗&#xff1f;如果没有&#xff0c;这篇文章就是为你准备的。 在本文中&#xff0c;我们…

ABAQUS应用03——装配以及对应的Python代码

文章目录 0. 背景1、一般情况下零件的装配及定位约束2、混塔节段的装配 0. 背景 本文为ABAQUS应用的系列文章&#xff0c;主要依托本人工作中的实际应用&#xff0c;方便学习记录ABAQUS&#xff0c;所以并不会太多考虑读者的阅读效果&#xff0c;这里请各位见谅。 ABAQUS学习的…

【LeetCode】20. 有效的括号(Deque的Stack用法)

今日学习的文章链接和视频链接 leetcode题目地址&#xff1a;20. 有效的括号 代码随想录题解地址&#xff1a;代码随想录 题目简介 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效…

除了文件助手还能怎么传文件?便签快速实文件共享

在日常生活和工作中&#xff0c;我们经常遇到需要传输或不同设备共享文件的情况。每当这时&#xff0c;很多人首先想到的是使用文件助手&#xff0c;它确实提供了便捷的文件传输服务。但是&#xff0c;我也曾担忧过它的安全性&#xff0c;特别是在使用陌生电脑时&#xff0c;我…

2024年PMP考试新考纲-PMBOK第七版-【模型、方法和工件】真题解析(4)

今天是2024年1月2日&#xff0c;2024年年的第一个工作日&#xff0c;祝大家愉快、进步&#xff01;我们继续来看第七版PMBOK第四部分【模型、方法和工件】这个章节相关的真题。 这几天有几个小伙伴问华研荟&#xff0c;是不是一定要先看PMP的教材&#xff08;这里的教材指的是…

《最新出炉》系列初窥篇-Python+Playwright自动化测试-6-元素定位大法-下篇

1.简介 上一篇主要是讲解我们日常工作中在使用Playwright进行元素定位的一些比较常用的定位方法的理论基础知识以及在什么情况下推荐使用。今天这一篇讲解和分享一下&#xff0c;在日常中很少用到或者很少见的定位&#xff0c;但是遇到了我们也要会&#xff0c;俗话说&#xf…

Java:socket编程

目录 1、主程序 2、socket任务类 3、jdbc任务类 4、tomcat-jdbc连接池 5、jar包依赖 1、主程序 创建2个线程池&#xff0c;一个用于管理socket连接&#xff0c;一个用来管理jdbc连接。 package socket;import java.io.IOException; import java.net.ServerSocket; import…

深度学习核心技术与实践之自然语言处理篇

非书中全部内容&#xff0c;只是写了些自认为有收获的部分。 自然语言处理简介 NLP的难点 &#xff08;1&#xff09;语言有很多复杂的情况&#xff0c;比如歧义、省略、指代、重复、更正、倒序、反语等 &#xff08;2&#xff09;歧义至少有如下几种&#xff1a; …

一篇文章掌握系统架构的演变和常见微服务框架

目录 前言 一、系统架构的演变 1、单体应用架构 优点&#xff1a; 缺点&#xff1a; 2、垂直应用架构 优点&#xff1a; 缺点&#xff1a; 3、分布式SOA架构 3.1 什么是SOA 3.2 SOA架构 优点&#xff1a; 缺点&#xff1a; 4、微服务架构 优点&#xff1a; 缺点…