爪哇部落算法组2024新生赛热身赛题解
第一题(签到):
1、题意:
2、题解:
我们观察到happynewyear的长度是12个字符,我们直接从前往后遍历0到n - 12的位置(这里索引从0开始),使用C++的substr()函数找到以i开头的长度为12的字符串是不是我们要的,如果是的话直接输出,注意输出时索引是从0开始。
3、代码:
#include <bits/stdc++.h> using namespace std; const int N = 1e5 + 10; int n; int main() {string s; cin >> n >> s; for(int i = 0; i < n - 12; i ++ ) {string tmp = s.substr(i, 12); if(tmp == "happynewyear") {cout << i << endl; return 0; }}return 0; }
第二题(思维构造):
1、题意:
2、题解:对于任意数字%7的解集是
, ,操作2我们可以构造方案为
使得得到了7的倍数,当任意要构造0-6时,我们发现会多出几个空位出来,当余数为x时我们构造7-x, 显然 0 <= 7 - x <= 7,当我们先给7-x分配好了二进制位置,可以发现0-6都只占二进制位1个,2个,会剩下5个或者4个,我们只需要多次执行操作二凑出7的二进制的占位的个数的倍数(只需要按构造方案那样的思想造不同的二进制位),就一定能构造出任意情况。
3、代码#include <bits/stdc++.h> using namespace std; using ll = long long; ll n, m; ll a[N], s[N]; int main() {int T; cin >> T; while(T -- ) {string s; cin >> s; cout << "YES" << endl; }return 0; }
第三题(前缀和):
1、题意:
2、题解:
维护好长度为n的前缀和,每次到达<= n - m + 1的位置我们直接对取Max即可
3、代码:#include <bits/stdc++.h> using namespace std; using ll = long long; const int N = 2e5 + 10; ll n, m; ll a[N], s[N]; int main() {cin >> n >> m; ll ans = -1; for(int i = 1; i <= n; i ++ ) {cin >> a[i];s[i] = a[i] + s[i - 1]; }for(int i = 1; i <= n - m + 1; i ++ )ans = max(ans, s[i + m - 1] - s[i - 1]); cout<<ans<<endl; return 0; }
第四题 (贪心 + 维护):
1、题意:
2、题解:
我们先维护好"AB"的每个位置和"BA"的每个位置,都是第一个字符出现的位置,遍历"AB"位置,二分出左边离它最远的"BA"位置,判断一下这个位置是否是和它差>=3的长度,如果是就是合法的,再二分出右边离它最远的"BA"位置,判断一下这个位置是否和它差>=3长度, 如果是就说合法的。
3、代码:
#include <bits/stdc++.h> using namespace std; const int N = 2e5 + 10; int n, m; void solve() {string s;cin >> s; n = s.size();vector<int> ab, ba; for(int i = 0; i < n - 1; i ++ ) {string tmp; tmp += s[i]; tmp += s[i + 1]; if(tmp == "AB") ab.push_back(i);if(tmp == "BA") ba.push_back(i);}bool flag = 0; for(int i = 0; i < ab.size(); i ++ ) {int x = ab[i], i1 = -1, i2 = -1; int l = 0, r = ba.size() - 1; while(l < r) {int mid = l + r >> 1; if(ba[mid] < x - 1) r = mid; else l = mid + 1; }i1 = l;l = 0, r = ba.size() - 1; while(l < r) {int mid = l + r + 1 >> 1; if(ba[mid] > x + 1) l = mid; else r = mid - 1; }i2 = l;if(ba.size() && ba[i1] < x - 1) {flag = 1; break; }if(ba.size() && ba[i2] > x + 1) {flag = 1;break; }}if(flag) puts("YES");else puts("NO"); } int main() {int ts = 1;cin >> ts;while(ts --) solve();return 0; }
相关文章:

爪哇部落算法组2024新生赛热身赛题解
第一题(签到): 1、题意: 2、题解: 我们观察到happynewyear的长度是12个字符,我们直接从前往后遍历0到n - 12的位置(这里索引从0开始),使用C的substr()函数找到以i开头的长度为12的字…...
1123. 铲雪车(欧拉回路)
活动 - AcWing 随着白天越来越短夜晚越来越长,我们不得不考虑铲雪问题了。 整个城市所有的道路都是双向车道,道路的两个方向均需要铲雪。因为城市预算的削减,整个城市只有 1 辆铲雪车。 铲雪车只能把它开过的地方(车道)的雪铲干…...

网络协议与攻击模拟_15FTP协议
了解FTP协议 在Windows操作系统上使用serv-U软件搭建FTP服务 分析FTP流量 一、FTP协议 1、FTP概念 FTP(文件传输协议)由两部分组成:客户端/服务端(C/S架构) 应用场景:企业内部存放公司文件、开发网站时利…...

「效果图渲染」效果图与3D影视动画渲染平台
效果图渲染和3D影视动画渲染都是视觉图像渲染的领域应用。效果图渲染主要服务于建筑、室内设计和产品设计等行业,这些领域通常对视觉呈现的精度和细节有较高要求。与之相比,3D影视动画渲染则普遍应用于电影、电视、视频游戏和广告等媒体领域,…...

Blender_查看版本
Blender_查看版本 烦人的烦恼,没找见哪儿可以查看版本? 算是个隐蔽的角落!...
node.js 读目录.txt文件,用 xml2js 转换为json数据,生成jstree所需的文件
请参阅:java : pdfbox 读取 PDF文件内书签 请注意:书的目录.txt 编码:UTF-8,推荐用 Notepad 转换编码。 npm install elementtree ; npm install xml2js ; node.js 用 elementtree读目录.txt文件,用 xml2js 转换为…...

【Docker】02 镜像管理
文章目录 一、Images镜像二、管理操作2.1 搜索镜像2.1.1 命令行搜索2.1.2 页面搜索2.1.3 搜索条件 2.2 下载镜像2.3 查看本地镜像2.3.1 docker images2.3.2 --help2.3.3 repository name2.3.4 --filter2.3.5 -q2.3.6 --format 2.4 给镜像打标签2.5 推送镜像2.6 删除镜像2.7 导出…...

了解海外云手机的多种功能
随着社会的高度发展,海外云手机成为商家不可或缺的工具,为企业出海提供了便利的解决方案。然而,谈及海外云手机,很多人仍不了解其强大功能。究竟海外云手机有哪些功能,可以为我们做些什么呢? 由于国内电商竞…...

白酒:自动化生产线的优势与实践
随着科技的进步,自动化生产线在各行各业的应用越来越广泛。云仓酒庄的豪迈白酒在生产过程中,也积极引入自动化生产线,以提升生产效率、品质和安全性。 首先,自动化生产线能够显著提高生产效率。传统的手工生产线在生产过程中容易受…...

用HTML5实现灯笼效果
本文介绍了两种实现效果:一种使用画布(canvas)标签/元素,另一种不用画布(canvas)标签/元素主要使用CSS实现。 使用画布(canvas)标签/元素实现,下面,在画布上…...
Postgresql源码(120)事务XID分配与主备XID同步
参考 《Postgresql源码(25)子事务可见性判断和性能问题》 XID获取顶层入口 函数:AssignTransactionId static void AssignTransactionId(TransactionState s) {...优先给没有事务ID的父事务分配 确保父事务有 XID,以便子事务总是…...
B2077 角谷猜想(洛谷)
题目描述 所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘 33 加 11,如果是偶数,则除以 22,得到的结果再按照上述规则重复处理,最终总能够得到 11。如,假定初始整数为 55&…...

排序算法---归并排序
原创不易,转载请注明出处。欢迎点赞收藏~ 归并排序是一种常见的排序算法,它采用了分治的思想。它将一个待排序的数组递归地分成两个子数组,分别对两个子数组进行排序,然后将排好序的子数组合并成一个有序数组。 具体的归并排序过…...

[WUSTCTF2020]朴实无华(特详解)
一开始说header出问题了 就先dirsaerch扫一遍 发现robot.txt 访问一下 去看看,好好好,肯定不是得 他一开始说header有问题,不妨抓包看看,果然有东西 访问看看,乱码修复一下,在之前的博客到过 <img src…...

下载已编译的 OpenCV 包在 Visual Studio 下实现快速配置
自己编译 OpenCV 挺麻烦的,配置需要耗费很长时间,编译也需要很长时间,而且无法保证能全部编译通过。利用 OpenCV 官网提供的已编译的 OpenCV 库可以节省很多时间。下面介绍安装配置方法。 1. OpenCV 官网 地址是:https://opencv…...

【Linux系统学习】3.Linux用户和权限
Linux用户和权限 1.认知root用户 1.1 root用户(超级管理员) 无论是Windows、MacOS、Linux均采用多用户的管理模式进行权限管理。 在Linux系统中,拥有最大权限的账户名为:root(超级管理员) 而在前期&#…...

视频美颜SDK开发指南:从入门到精通的技术实践
美颜SDK是一种强大的工具,它不仅仅可以让用户在实时视频中获得光滑的肌肤和自然的妆容,从简单的滤镜到复杂的人脸识别,美颜SDK涵盖了广泛的技术领域。 一、美颜SDK的基本原理 美颜SDK包括图像处理、人脸检测和识别、滤镜应用等方面。掌握这些…...

Electron基本介绍
Electron基本介绍 Electron 官方网站:https://www.electronjs.org/zh/ Electron安装方法:npm install electron -g 全局安装 Electron简介:Electron提供了丰富的本地(操作系统)API,使你能够使用纯JavaScr…...
使用网关过滤器,根据业务规则实现微服务动态路由
文章目录 业务场景拦截器实现Spring Cloud Gateway介绍 业务场景 我们服务使用Spring Cloud微服务架构,使用Spring Cloud Gateway 作为网关,使用 Spring Cloud OpenFeign 作为服务间通信方式作为网关,主要作用是鉴权与路由转发。大多数应用场…...

PKI - 03 密钥管理(如何进行安全的公钥交换)
文章目录 Pre密钥管理面临的挑战安全密钥管理的几种方式手动密钥交换与确认受信任的介绍 Pre PKI - 02 对称与非对称密钥算法 密钥管理面临的挑战 密钥管理面临的挑战主要包括以下几点: 安全的公钥交换:在使用基于非对称密钥算法的服务之前,…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...

【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...

如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...