牛客周赛 Round 2
小红的环形字符串小红的环形字符串
题目描述
小红拿到了一个环形字符串s。所谓环形字符串,指首尾相接的字符串。
小红想顺时针截取其中一段连续子串正好等于t,一共有多少种截法?
思路分析
环形问题。
- 将字符串 s 拼接自身,得到新的字符串 tem,用于处理环形问题
时间复杂度
O(n * m)
代码
#include <iostream>
#include <string>
using namespace std;int main() {string s, t;cin >> s >> t;int n = s.length(), m = t.length();string tem = s + s;int cnt = 0;for (int i = 0; i < n; i++) {if (tem.substr(i, m) == t) {cnt++;}}cout << cnt << endl;return 0;
}
相邻不同数字的标记
题目描述
小红拿到了一个数组,每个数字被染成了红色或蓝色。
小红有很多次操作,每次操作可以选择两个相邻的不同颜色的数字标记,并获得它们数字之和的得分。已经被标记的数字无法再次标记。
小红想知道,自己最多能获得多少分。
思路分析
使用动态规划来解决该问题。定义一个数组 dp,其中 dp[i] 表示在第 i 个位置时,小红能够获得的最高得分。
- 如果数组中第 i 和 i-1 个数字颜色相同,则不能进行标记操作,此时 dp[i] = dp[i-1]。
- 如果数组中第 i 和 i-1 个数字颜色不同,则小红可以选择标记这两个数字,并获得它们的和作为得分。此时 dp[i] = dp[i-2] + a[i-1] + a[i]。
时间复杂度
O(n)
代码
#include <iostream>
using namespace std;
long long a[100005], dp[100005];
char b[100005];
int main() {int n;cin >> n;long long ans=0;for (int i = 1; i <= n; i++)cin >> a[i];cin >> b + 1;for (int i = 2; i <= n; i++) {if (b[i] == b[i-1])dp[i] = dp[i-1];elsedp[i] = max(dp[i-1],dp[i-2]+a[i-1]+a[i]);}cout << dp[n] << endl;return 0;
}
小红的俄罗斯方块
思路分析
模拟+找规律
时间复杂度
O(n)
代码
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;int main() {int n;cin >> n;vector<int> cols(9, 0);for (int i = 0; i < n; i++) {int a, b;cin >> a >> b;if (a == 0) {int low = max(cols[b], cols[b + 1]);cols[b] = low + 3;cols[b + 1] = low + 1;} else if (a == 90) {int t2 = max(cols[b + 1], cols[b + 2]);if (t2 >= cols[b] + 1) {cols[b] = t2 + 1;cols[b + 1] = t2 + 1;cols[b + 2] = t2 + 1;} else {t2 = cols[b];cols[b] = t2 + 2;cols[b + 1] = t2 + 2;cols[b + 2] = t2 + 2;}} else if (a == 180) {if (cols[b] >= cols[b + 1] + 2) {int low = cols[b];cols[b] = low + 1;cols[b + 1] = low + 1;} else {int low = cols[b + 1];cols[b] = low + 3;cols[b + 1] = low + 3;}} else if (a == 270) {int low = max({cols[b], cols[b + 1], cols[b + 2]});cols[b] = low + 1;cols[b + 1] = low + 1;cols[b + 2] = low + 2;}}string res = "";for (int i = 1; i < 9; i++) {res += to_string(cols[i]) + " ";}cout << res << endl;return 0;
}
相关文章:
牛客周赛 Round 2
小红的环形字符串小红的环形字符串 题目描述 小红拿到了一个环形字符串s。所谓环形字符串,指首尾相接的字符串。 小红想顺时针截取其中一段连续子串正好等于t,一共有多少种截法? 思路分析 环形问题。 将字符串 s 拼接自身,得到新…...
Git 命令提交和分支控制
强大的分支和合并:Git 提供了强大的分支功能,使得开发者可以轻松创建、合并和管理分支。这种灵活性使得团队可以同时进行多个任务和实验性开发,而不会相互干扰 Git 在处理大型代码仓库和版本历史时表现出色。它使用了一种称为“快照”的机制…...
2023 node 接入腾讯云短信服务,实现发送短信功能
1、在 腾讯云开通短信服务,并申请签名和正文模板 腾讯云短信 https://console.cloud.tencent.com/smsv2 a、签名即是短信的开头。例如 【腾讯云短信】xxxxxxx; b、正文模板即短信内容, 变量部分使用{1}, 数字从1开始累推。例如&a…...
Devops系列四(使用argocd部署java应用到k8s容器)
一、说在前面的话 上文已为我们准备好了以下内容: 制作java应用的docker镜像,并推送至镜像仓库上传helm yaml代码至gitlab仓库(此gitlab和java应用所在的gitlab可以独立,也可以在一起,但是不宜在同一个工程ÿ…...
如何在Microsoft Excel中进行不连续区域批量填充
快速填充是 Excel 最令人惊叹的功能之一,它因让一个需要数小时手动执行的乏味任务瞬间自动执行而得名,然而它也有局限性: 结果不是动态的。当你更改其所基于的值时,快速填充值不会更新。你需要再次执行快速填充才能更新值。 快速填充可能并不总是返回结果。该模式对于 Exce…...
k8s+springboot+CronJob 定时任务部署
kubernetesspringbootCronJob 定时任务配置如下代码: cronjob.yaml k8s 文件 apiVersion: batch/v1 kind: CronJob metadata:name: k8s-springboot-demonamespace: rz-dt spec:failedJobsHistoryLimit: 3 #执行失败job任务保留数量successfulJobsHistoryLimit: 5 …...
Spring5 中更优雅的第三方 Bean 注入
小伙伴们知道,当我们使用 Spring 容器的时候,如果遇到一些特殊的 Bean,一般来说可以通过如下三种方式进行配置: 静态工厂方法实例工厂方法FactoryBean 不过从 Spring5 开始,在 AbstractBeandefinition 类中多了一个属…...
Yolov5-Face 原理解析及算法解析
YOLOv5-Face 文章目录 YOLOv5-Face1. 为什么人脸检测 一般检测?1.1 YOLOv5Face人脸检测1.2 YOLOv5Face Landmark 2.YOLOv5Face的设计目标和主要贡献2.1 设计目标2.2 主要贡献 3. YOLOv5Face架构3.1 模型架构3.1.1 模型示意图3.1.2 CBS模块3.1.3 Head输出3.1.4 stem…...
通俗易懂讲解CPU、GPU、FPGA的特点
1. CPU vs GPU 大家可以简单的将CPU理解为学识渊博的教授,什么都精通;而GPU则是一堆小学生,只会简单的算数运算。可即使教授再神通广大,也不能一秒钟内计算出500次加减法。因此,对简单重复的计算来说,单单一…...
PIC18 DataRAM 笔记
1.疑似最糟糕的英文技术文档段落 Since up to 16 registers may share the same low-order address, the user must always be careful to ensure that the proper bank is selected before performing a data read or write. For example, writing what should be program dat…...
【FFMPEG】AVFilter使用流程
流程图 核心类 AVFilterGraph ⽤于统合这整个滤波过程的结构体 AVFilter 滤波器,滤波器的实现是通过AVFilter以及位于其下的结构体/函数来维护的 AVFilterContext ⼀个滤波器实例,即使是同⼀个滤波器,但是在进⾏实际的滤波时,也…...
爬虫入门06——了解cookie和session
爬虫入门06——了解cookie和session (1)什么是cookie,有什么作用 http请求是无状态的请求协议,不会记住用户的状态和信息,也不清楚你在这之前访问过什么而当网站需要记录用户是否登录时,就需要在用户登录…...
Ubuntu 的移动梦醒了
老实讲,移动版 Ubuntu 在手机、平板上的发展自始至终可能都没有达到过 Canonical 的期望,既然如此,不再勉为其难地坚持下去,或许才是更加明智的做法。 时至今日,官方显然也意识到了这一点,在早些时候发布的…...
RabbitMQ的集群
新建一个虚拟机,重新安装一个RabbitMQ,不会安装的可以看下面的连接: 在Linux中安装RabbitMQ_流殇꧂的博客-CSDN博客 1.修改/etc/hosts映射文件,两台虚拟机都需要修改 vim /etc/hosts 127.0.0.1 node1 localhost.localdomain localhost4 localhost4.localdomain4 ::1 node1 loca…...
超长上下文处理:基于Transformer上下文处理常见方法梳理
原文链接:芝士AI吃鱼 目前已经采用多种方法来增加Transformer的上下文长度,主要侧重于缓解注意力计算的二次复杂度。 例如,Transformer-XL通过缓存先前的上下文,并允许随着层数的增加线性扩展上下文。Longformer采用了一种注意力…...
ChatGPT爆火 但生成式AI并非全新产物
以ChatGPT、Midjourney 为代表的 AIGC 产品横空出世,在全球掀起新一轮的 AI 技术变革新浪潮。近二十年来,我们见证了从「机器学习」算法到「深度学习」,再到「基础模型」的发展。随着数据量大规模膨胀,可扩展的算力,再…...
深度学习循环神经网络
循环神经网络(Recurrent Neural Network,RNN)是一种广泛应用于序列数据、自然语言处理等领域的神经网络。与传统的前馈神经网络不同,循环神经网络的输入不仅取决于当前输入,还取决于之前的状态。这使得循环神经网络可以…...
如何规范的设计数据库表
前言对于后端开发同学来说,访问数据库,是代码中必不可少的一个环节。系统中收集到用户的核心数据,为了安全性,我们一般会存储到数据库,比如:mysql,oracle等。后端开发的日常工作,需要…...
【CSS】跳动文字
文章目录 效果展示代码实现 效果展示 代码实现 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>一颗不甘坠落的流星</title></head><style type"text/css">/* 遮罩盒子样式 */#mask {/* 设…...
arm海思启动udev的错误
近日在配置HI3531D的文件时发现错误 random: udevd: uninitialized urandom read (16 bytes read) random: udevd: uninitialized urandom read (16 bytes read)udev 是一个为你的计算机提供设备事件的 Linux 子系统。通俗来讲就是,当你的计算机上插入了像网卡、外…...
MidScene:让AI成为你的自动化协作者 副标题:无需编程的多平台智能操作解决方案
MidScene:让AI成为你的自动化协作者 副标题:无需编程的多平台智能操作解决方案 【免费下载链接】midscene Let AI be your browser operator. 项目地址: https://gitcode.com/GitHub_Trending/mid/midscene 在数字化时代,重复性操作和…...
LFM2.5-1.2B-Thinking-GGUF入门指南:Web UI界面功能与Thinking后处理解读
LFM2.5-1.2B-Thinking-GGUF入门指南:Web UI界面功能与Thinking后处理解读 1. 模型与平台简介 LFM2.5-1.2B-Thinking-GGUF是Liquid AI推出的轻量级文本生成模型,专为低资源环境优化设计。该模型采用GGUF格式存储,配合llama.cpp运行时&#x…...
Materialize:智能PBR材质转化引擎赋能3D创作流程重构
Materialize:智能PBR材质转化引擎赋能3D创作流程重构 【免费下载链接】Materialize Materialize is a program for converting images to materials for use in video games and whatnot 项目地址: https://gitcode.com/gh_mirrors/mate/Materialize 在3D内容…...
Learn Claude Code Agent 开发 | 2、插拔式工具系统:扩展功能不修改核心循环
Learn Claude Code Agent 开发 | 2、插拔式工具系统:扩展功能不修改核心循环 整体概述 多工具分发核心实现是基础智能体循环的直接扩展,核心思想就是: “加一个工具, 只加一个 handler” – 循环不用动, 新工具注册进 dispatch map 就行。 …...
智能管控硬件设备:FanControl散热管理工具全攻略
智能管控硬件设备:FanControl散热管理工具全攻略 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/FanC…...
nRF52832上电启动全解析:从MBR到Bootloader的跳转机制与寄存器配置
nRF52832上电启动全解析:从MBR到Bootloader的跳转机制与寄存器配置 当nRF52832芯片通电瞬间,一场精密的硬件芭蕾在微秒级时间内悄然上演。这颗蓝牙低功耗SoC的启动流程远非简单的"通电即运行",而是涉及存储器分区、寄存器配置和多重…...
OpenPose终极指南:10分钟掌握人体姿态估计核心技术
OpenPose终极指南:10分钟掌握人体姿态估计核心技术 【免费下载链接】openpose 项目地址: https://gitcode.com/gh_mirrors/op/openpose 想要快速搭建专业级的人体姿态识别系统吗?OpenPose作为业界领先的开源姿态估计库,能够实时检测图…...
告别官方驱动:深入解读ES7210寄存器,打造你自己的ESP32音频采集库
告别官方驱动:深入解读ES7210寄存器,打造你自己的ESP32音频采集库 在嵌入式音频开发领域,ES7210作为一款高性能多通道麦克风ADC芯片,因其出色的信噪比和灵活的配置选项,成为ESP32平台上音频采集的热门选择。然而&#…...
告别黑盒:用DrugBAN的可视化注意力,手把手教你解读AI预测的药物结合位点
从热力图到生物学洞察:DrugBAN注意力机制在药物发现中的实战指南 当AI模型预测出某种小分子可能与靶点蛋白结合时,药物研发者最迫切的问题是:模型究竟看到了什么?传统"黑盒"模型只能给出冷冰冰的预测分数,而…...
用gm/ID方法搞定两级运放设计:从理论公式到Cadence仿真避坑全记录
两级运放设计的gm/ID实战指南:从公式推导到Cadence仿真优化 在模拟集成电路设计中,两级运算放大器是最基础也最经典的拓扑结构之一。对于刚接触模拟IC设计的工程师或研究生来说,如何将教科书上的理论转化为实际可操作的电路,往往…...






