牛客周赛 Round 33 解题报告 | 珂学家 | 思维场


前言


整体评价

感觉这场更偏思维,F题毫无思路,但是可以模拟骗点分, E题是dij最短路.


A. 小红的单词整理

类型: 签到

w1,w2 = input().split()
print (w2)
print (w1)

B. 小红煮汤圆

思路: 模拟

可以从拆包的角度去构建模拟

注意拆一包,可以烧好几次的情况

n, x, k = list(map(int, input().split()))res = []
pack = 0
left = 0
for i in range(n):left += xpack += 1while left >= k:res.append(pack)left -= kpack = 0print (len(res))
print (*res, sep=' ')

C. 小红的 01 串

思路: 枚举

其实只能删除第1/第2,只能保证删除数组的前面一个区间,最多保留一个

题外话

如果题目改成第1/第2/…/第k,那最大价值数组是多少?

其实也是类似的思路


枚举最后一个被删除的位子

这样价值为 [前缀最多一位] + [后缀区间价值和]

s = input()n = len(s)n0, n1 = 0, 0
for c in s:if c == '0':n0 += 1else:n1 += 1# 然后枚举
res = max(0, n1 - n0)t1 = 0
for i in range(n):if s[i] == '0':n0 -= 1else:n1 -= 1t1 += 1res = max(res, n1 - n0 + (1 if t1 > 0 else 0))print (res)

D. 小红的数组清空

思路: 贪心

尽量从最小值开始删除,带动连续数组

貌似这边for嵌套while,看似时间复杂度很高,但实际上,每次都会有效删除至少1,而n最多1e5,所以均摊下来为O(1)

时间复杂度为 O ( n ) O(n) O(n)

# 贪心
n = int(input())
arr = list(map(int, input().split()))from collections import Countercnt = Counter(arr)brr = [[k, v] for (k, v) in cnt.items()]
brr.sort(key=lambda x: x[0])ans = 0
m = len(brr)
for i in range(m):if brr[i][1] > 0:j = i + 1cost = brr[i][1]brr[i][1] = 0ans += costwhile j < m and cost > 0 and brr[j - 1][0] + 1 == brr[j][0]:cost = min(cost, brr[j][1])            brr[j][1] -= costj += 1print (ans)

E. 小红勇闯地下城

思路: dijkstra最短路

题型: 板子题

t = int(input())import heapq
from math import infdef solve(grids, health):h, w = len(grids), len(grids[0])sy, sx = -1, -1ty, tx = -1, -1for i in range(h):for j in range(w):if grids[i][j] == 'S':sy, sx = i, jelif grids[i][j] == 'T':ty, tx = i, jif sy == -1 or ty == -1:return "No"arr = []vis = [[inf] * w for _ in range(h)]heapq.heappush(arr, (0, sy, sx))vis[sy][sx] = 0while len(arr) > 0:cur = heapq.heappop(arr)if cur[0] > vis[cur[1]][cur[2]]:continueif cur[0] >= health:continueif cur[1] == ty and cur[2] == tx:return "Yes"for (dy, dx) in [(1, 0), (-1, 0), (0, -1), (0, 1)]:gy = cur[1] + dygx = cur[2] + dxif gy >= h or gy < 0 or gx >= w or gx < 0:continuetcost = 0if grids[gy][gx] >= '0' and grids[gy][gx] <= '9':tcost = ord(grids[gy][gx]) - ord('0')if vis[gy][gx] > cur[0] + tcost and cur[0] + tcost < health:vis[gy][gx] = cur[0] + tcostheapq.heappush(arr, (vis[gy][gx], gy, gx))return "No"for _ in range(t):n, m, h = list(map(int, input().split()))grids = []for _ in range(n):grids.append(input())print (solve(grids, h))

F. 小红的数组操作

后期再补上


写在最后

alt

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

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

相关文章

vmware安装centos 7.9 操作系统

vmware安装centos 7.6 操作系统 1、下载centos 7.9 操作系统镜像文件2、安装centos 7.9 操作系统3、配置centos 7.6 操作系统3.1、配置静态IP地址 和 dns3.2、查看磁盘分区3.3、查看系统版本 1、下载centos 7.9 操作系统镜像文件 本文选择centos 7.9 最小化安装镜像包 这里选…

关于php、php-fpm的解释

PHP语言是由PHP程序解释的&#xff0c;而不是由php-fpm程序解释的。 PHP&#xff08;Hypertext Preprocessor&#xff09;是一种通用开源脚本语言&#xff0c;最初是为创建动态Web页面而设计的&#xff0c;但现在也可以用于命令行脚本编写等用途。PHP程序通常由Web服务器&…

Nest创建神经元,并显示电压变化曲线

nest 安装与介绍 NEST&#xff08;神经模拟工具&#xff09;最初是在 1990 年代后期开发的。它的主要目标是作为计算神经科学模拟器。它支持具有不同生物学细节水平的各种神经元和突触模型。例如&#xff0c;NEST 的神经元模型范围从泄漏积分和激发模型到详细的 Hodgkin-Huxle…

python jupyter notebook打开页面方便使用

如果没安装jupyter, 请安装&#xff1a; pip install jupyter notebook 运行jupyter notebook jupyter-notebook

03|Order by与Group by优化

索引顺序依次是 &#xff1a; name,age,position 案例1 EXPLAIN SELECT * FROM employees WHERE name LiLei AND position dev ORDER BY age;分析: 联合索引中只是用到了name字段做等值查询[通过key_len 74可以看出因为name字段的len74]&#xff0c;在这个基础上使用了age进…

学会字符转换

字符转换 题目描述&#xff1a;解法思路&#xff1a;解法代码&#xff1a;运行结果&#xff1a; 题目描述&#xff1a; 输入⼀一个字符串&#xff0c;将字符串中大写字母全部转为小写字母&#xff0c;小写字母转成大写字母&#xff0c;其他字符保持不变。注&#xff1a;字符串…

pthread_cond_timedwait()函数

绝对时间&#xff1a;相对于1970年1月1日0时0分0秒 相对时间&#xff1a;相对于当前时间&#xff0c;如sleep(3);相对于当前&#xff0c;过3s.

1110. 删点成林

1110. 删点成林 关键要点 通过O(1)时间复杂度确认节点是否需要删除 Set to_deleteSet new HashSet<>(); Arrays.stream(to_delete).forEach(to_deleteSet::add); 使用深度优先搜索&#xff08;DFS&#xff09;遍历树 node.left dfs(node.left, s, ans); node.right …

js知识点总结

单线程是异步产生的原因 事件循环是异步的实现方式 何为进程&#xff1a; 程序运行需要有它自己专属的内存空间&#xff0c;可以把这 块内存空间简单的理解为进程 &#xff08;每个应用至少有一个进程&#xff0c;进程之间相互独立&#xff0c;要通信需要双方同意&#xff09;…

【物联网应用案例】某制造企业电锅炉检测项目

供暖行业在我国的经济发展中占据着重要的地位&#xff0c;然而&#xff0c;长期以来&#xff0c;该行业存在着自动化水平低、管理效率不高等问题&#xff0c;制约了其持续发展。为了解决这些问题&#xff0c;吉林某电锅炉生产厂家进行了一项创新性的尝试。 该厂家通过集成物联…

组态软件在物联网中的应用

随着物联网的快速发展&#xff0c;组态软件在物联网中的应用也越来越广泛。组态软件是一种用于创建和管理物联网系统的可视化工具&#xff0c;它能够将传感器、设备和网络连接起来&#xff0c;实现数据的采集、分析和可视化。本文将探讨组态软件在物联网中的应用&#xff0c;并…

mac电脑创建data目录

开发的同学.在linux下.一些日志记录创建的/data/**目录…但是在mac电脑是没有data目录的…大家可以用这个方式来新建.亲测 1&#xff0c;在/System/Volumes/Data下创建/data目录并设置目录权限 cd /System/Volumes/Data sudo mkdir data sudo chmod -R 777 data2&#xff0c;…

【Django开发】0到1开发美多shop项目:短信验证码和RabbitMQ。全md文档笔记(附代码 文档)

本系列文章md笔记&#xff08;已分享&#xff09;主要讨论django商城项目相关知识。项目利用Django框架开发一套前后端不分离的商城项目&#xff08;4.0版本&#xff09;含代码和文档。功能包括前后端不分离&#xff0c;方便SEO。采用Django Jinja2模板引擎 Vue.js实现前后端…

基于虚拟力优化的无线传感器网络覆盖率matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 虚拟力优化算法 4.2 覆盖覆盖率计算 5.完整程序 1.程序功能描述 基于虚拟力优化的无线传感器网络覆盖率&#xff0c;仿真输出优化前后的网络覆盖率&#xff0c;覆盖率优化收敛迭代曲线…

jQuery瀑布流画廊,瀑布流动态加载

jQuery瀑布流画廊&#xff0c;瀑布流动态加载 效果展示 手机布局 jQuery瀑布流动态加载 HTML代码片段 <!-- mediabanner --><div class"mediabanner"><img src"img/mediabanner.jpg" class"bg"/><div class"text&qu…

【计算机网络】深度学习使用应用层的HTTP协议

&#x1f493; 博客主页&#xff1a;从零开始的-CodeNinja之路 ⏩ 收录文章&#xff1a;【计算机网络】深度学习使用应用层的HTTP协议 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 文章目录 一:HTTP是什么二:HTTP请求1.HTTP请求的组成2.HTTP请求的方法…

Linux之部署前后端分离项目

Nginx配置安装 1.安装依赖 我们这里安装的依赖是有4个的 [rootlocalhost opt]# yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 2.上传解压安装包 [rootlocalhost opt]# tar -xvf nginx-1.13.7.tar.gz -C /usr/local/java/3.安装Nginx &#xff0…

我的NPI项目之设备系统启动(八) -- Android14的GKI2.0开发步骤和注意事项

GKI是什么&#xff1f; Google为什么要推行GKI&#xff1f; GKI全称General Kernel Image。GKI在framework和kernel之间提供了标准接口&#xff0c;使得android OS能够轻松适配/维护/兼容不同的设备和linux kernel。 Google引入GKI的目的是将Framework和Kernel进一步的解耦。因…

React 中引入 CSS 高阶用法

一、是什么 组件式开发选择合适的css解决方案尤为重要 通常会遵循以下规则&#xff1a; 可以编写局部css&#xff0c;不会随意污染其他组件内的原生&#xff1b;可以编写动态的css&#xff0c;可以获取当前组件的一些状态&#xff0c;根据状态的变化生成不同的css样式&#…

conda常用命令详解

Conda 是一个功能强大的包管理器和环境管理器&#xff0c;用于安装、部署和管理软件包和其依赖关系。下面是一些常用的 Conda 命令及其详细解释&#xff1a; 创建环境&#xff1a; conda create --name myenv python3.8 创建一个名为 myenv 的环境&#xff0c;并指定 Python 版…