当前位置: 首页 > news >正文

爪哇部落算法组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的解集是 \{ 0, 1, 2, 3, 4, 5, 6\} , ,操作2我们可以构造方案为\{2^0,2^1,2^2,2^3,2^4,2^5 \}使得得到了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的位置我们直接对s[i + m - 1] - s[i - 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新生赛热身赛题解

第一题&#xff08;签到&#xff09;&#xff1a; 1、题意&#xff1a; 2、题解: 我们观察到happynewyear的长度是12个字符&#xff0c;我们直接从前往后遍历0到n - 12的位置&#xff08;这里索引从0开始&#xff09;&#xff0c;使用C的substr()函数找到以i开头的长度为12的字…...

1123. 铲雪车(欧拉回路)

活动 - AcWing 随着白天越来越短夜晚越来越长&#xff0c;我们不得不考虑铲雪问题了。 整个城市所有的道路都是双向车道,道路的两个方向均需要铲雪。因为城市预算的削减&#xff0c;整个城市只有 1 辆铲雪车。 铲雪车只能把它开过的地方&#xff08;车道&#xff09;的雪铲干…...

网络协议与攻击模拟_15FTP协议

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

「效果图渲染」效果图与3D影视动画渲染平台

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

Blender_查看版本

Blender_查看版本 烦人的烦恼&#xff0c;没找见哪儿可以查看版本&#xff1f; 算是个隐蔽的角落&#xff01;...

node.js 读目录.txt文件,用 xml2js 转换为json数据,生成jstree所需的文件

请参阅&#xff1a;java : pdfbox 读取 PDF文件内书签 请注意&#xff1a;书的目录.txt 编码&#xff1a;UTF-8&#xff0c;推荐用 Notepad 转换编码。 npm install elementtree ; npm install xml2js ; node.js 用 elementtree读目录.txt文件&#xff0c;用 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 导出…...

了解海外云手机的多种功能

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

白酒:自动化生产线的优势与实践

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

用HTML5实现灯笼效果

本文介绍了两种实现效果&#xff1a;一种使用画布&#xff08;canvas&#xff09;标签/元素&#xff0c;另一种不用画布&#xff08;canvas&#xff09;标签/元素主要使用CSS实现。 使用画布&#xff08;canvas&#xff09;标签/元素实现&#xff0c;下面&#xff0c;在画布上…...

Postgresql源码(120)事务XID分配与主备XID同步

参考 《Postgresql源码&#xff08;25&#xff09;子事务可见性判断和性能问题》 XID获取顶层入口 函数&#xff1a;AssignTransactionId static void AssignTransactionId(TransactionState s) {...优先给没有事务ID的父事务分配 确保父事务有 XID&#xff0c;以便子事务总是…...

B2077 角谷猜想(洛谷)

题目描述 所谓角谷猜想&#xff0c;是指对于任意一个正整数&#xff0c;如果是奇数&#xff0c;则乘 33 加 11&#xff0c;如果是偶数&#xff0c;则除以 22&#xff0c;得到的结果再按照上述规则重复处理&#xff0c;最终总能够得到 11。如&#xff0c;假定初始整数为 55&…...

排序算法---归并排序

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

[WUSTCTF2020]朴实无华(特详解)

一开始说header出问题了 就先dirsaerch扫一遍 发现robot.txt 访问一下 去看看&#xff0c;好好好&#xff0c;肯定不是得 他一开始说header有问题&#xff0c;不妨抓包看看&#xff0c;果然有东西 访问看看&#xff0c;乱码修复一下&#xff0c;在之前的博客到过 <img src…...

下载已编译的 OpenCV 包在 Visual Studio 下实现快速配置

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

【Linux系统学习】3.Linux用户和权限

Linux用户和权限 1.认知root用户 1.1 root用户&#xff08;超级管理员&#xff09; 无论是Windows、MacOS、Linux均采用多用户的管理模式进行权限管理。 在Linux系统中&#xff0c;拥有最大权限的账户名为&#xff1a;root&#xff08;超级管理员&#xff09; 而在前期&#…...

视频美颜SDK开发指南:从入门到精通的技术实践

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

Electron基本介绍

Electron基本介绍 Electron 官方网站&#xff1a;https://www.electronjs.org/zh/ Electron安装方法&#xff1a;npm install electron -g 全局安装 Electron简介&#xff1a;Electron提供了丰富的本地&#xff08;操作系统&#xff09;API&#xff0c;使你能够使用纯JavaScr…...

使用网关过滤器,根据业务规则实现微服务动态路由

文章目录 业务场景拦截器实现Spring Cloud Gateway介绍 业务场景 我们服务使用Spring Cloud微服务架构&#xff0c;使用Spring Cloud Gateway 作为网关&#xff0c;使用 Spring Cloud OpenFeign 作为服务间通信方式作为网关&#xff0c;主要作用是鉴权与路由转发。大多数应用场…...

PKI - 03 密钥管理(如何进行安全的公钥交换)

文章目录 Pre密钥管理面临的挑战安全密钥管理的几种方式手动密钥交换与确认受信任的介绍 Pre PKI - 02 对称与非对称密钥算法 密钥管理面临的挑战 密钥管理面临的挑战主要包括以下几点&#xff1a; 安全的公钥交换&#xff1a;在使用基于非对称密钥算法的服务之前&#xff0c…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况&#xff0c;可以通过以下几种方式模拟或触发&#xff1a; 1. 增加CPU负载 运行大量计算密集型任务&#xff0c;例如&#xff1a; 使用多线程循环执行复杂计算&#xff08;如数学运算、加密解密等&#xff09;。运行图…...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象&#xff1a; android studio报错&#xff1a; [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决&#xff1a; 不要动CMakeLists.…...