爪哇部落算法组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;
}

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

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

相关文章

寒假作业7

sql语句 创建表格 create table 表名 &#xff08;字段名 数据类型&#xff0c;字段名 数据类型&#xff09; create table if not exists 表名 &#xff08;字段名 数据类型&#xff0c; 字段名 数据类型&#xff09; 删除表格 drop table 表名&#xff1b; 插入记录 全字…

git flow与分支管理

git flow与分支管理 一、git flow是什么二、分支管理1、主分支Master2、开发分支Develop3、临时性分支功能分支预发布分支修补bug分支 三、分支管理最佳实践1、分支名义规划2、环境与分支3、分支图 四、git flow缺点 一、git flow是什么 Git 作为一个源码管理系统&#xff0c;…

【转载】原生社区交友婚恋视频即时通讯双端APP源码 ONE兔2.0版

原生社区交友婚恋视频即时通讯双端APP源码下载ONE兔2.0版 包含后端、H5源码源码&#xff0c;Android源码&#xff0c;IOS源码

LeetCode983. Minimum Cost For Tickets——动态规划

文章目录 一、题目二、题解 一、题目 You have planned some train traveling one year in advance. The days of the year in which you will travel are given as an integer array days. Each day is an integer from 1 to 365. Train tickets are sold in three differen…

3.4-媒资管理之视频处理+xx-job分布式任务

文章目录 媒资管理6 视频处理6.1 需求6.1.1 总体需求6.7.3 FFmpeg 的基本使用6.7.4 视频处理工具类 6.2 分布式任务处理6.2.1 什么是分布式任务调度6.2.2 XXL-JOB介绍6.2.3 搭建XXL-JOB6.2.3.1 调度中心6.2.3.2 执行器6.2.3.3 执行任务 6.2.4 分片广播 6.3 技术方案6.3.1 作业分…

Java基础常见面试题总结-集合(一)

常见的集合有哪些&#xff1f; Java集合类主要由两个接口Collection和Map派生出来的&#xff0c;Collection有三个子接口&#xff1a;List、Set、Queue。 Java集合框架图如下&#xff1a; List代表了有序可重复集合&#xff0c;可直接根据元素的索引来访问&#xff1b;Set代表…

8个简约精美的WordPress外贸网站主题模板

Simplify WordPress外贸网站模板 Simplify WordPress外贸网站模板&#xff0c;简洁实用的外贸公司wordpress外贸建站模板。 查看演示 Invisible Trade WP外贸网站模板 WordPress Invisible Trade外贸网站模板&#xff0c;做进出口贸易公司官网的wordpress网站模板。 查看演…

Vue3编写简单的App组件(二)

一、Vue3页面渲染基本流程 1、入口文件 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><link rel"icon" href"/favicon.ico"><meta name"viewport" content"widthde…

算法学习系列(三十二):背包问题

目录 引言一、01背包1.二维代码模板2.一维代码模板 二、完全背包1.朴素代码模板2.二维优化代码模板3.一维代码模板 三、多重背包1.朴素做法2.优化版本 四、分组背包1.朴素做法2.一维优化 引言 从这一篇文章开始&#xff0c;就开始学习动态规划了&#xff0c;也就是DP了&#x…

js手写Promise(下)

目录 resolve与reject的调用时机封装优化 回调返回PromiseisPromise手动调用then 微队列catchresolverejectall传入的序列为空传入的值非Promise race完整的Promise代码 如果没有看过上半部分的铁铁可以看看这篇文章 js手写Promise&#xff08;上&#xff09; resolve与reject…

MacOS 设置 环境变量

1. 以TextEdit 的方式打开 ~/.bash_profile 文件 touch ~/.bash_profile; open -t ~/.bash_profile 2.新增环境变量 export PATH"$HOME/.rbenv/bin:$PATH" 3.让以上所作的配置生效 source ~/.bash_profile 4.查看是否生效&#xff08;有时可能须要关闭当前 T…

Go Context -- 管理请求的上下文信息

在Go语言中&#xff0c;管理请求的上下文信息对于构建可靠的并发程序至关重要。context 包为我们提供了一种优雅的方式来传递请求的取消信号、超时信息和请求范围的值。接下来将深入探讨Go中的 context 包&#xff0c;包括其基本概念、用法、实际应用场景和最佳实践&#xff0c…

在Visual Studio中引用和链接OpenSceneGraph (OSG) 库

在Visual Studio中引用和链接OpenSceneGraph (OSG) 库&#xff0c;按照以下步骤操作&#xff1a; 构建或安装OSG库 下载OpenSceneGraph源代码&#xff08;如3.0版本&#xff09;并解压。使用CMake配置项目&#xff0c;为Visual Studio生成解决方案文件。通常您需要设置CMake中的…

Office2013下载安装教程,保姆级教程,附安装包和工具

前言 Microsoft Office是由Microsoft(微软)公司开发的一套基于 Windows 操作系统的办公软件套装。常用组件有 Word、Excel、PowerPoint、Access、Outlook等。 准备工作 1、Win7 及以上系统 2、提前准备好 Office 2013 安装包 安装步骤 1.鼠标右击【Office2013(64bit)】压缩…

Vue中 常用的修饰符有哪些

Vue是一款建立在JavaScript框架上的开源前端库&#xff0c;已经成为当今前端开发人员最喜爱的选择之一。它的简洁语法和强大的功能使得开发者可以轻松地构建交互性的网页应用程序。在Vue中&#xff0c;修饰符是一个重要的概念&#xff0c;它们可以帮助我们更好地控制和定制DOM元…

PV、UV、IP

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言1. PV1.1 PV 计算1.2 PV 的影响因素 2. UV2.1 UV 计算2.2UV 的影响因素 3. IP3.1 IP和UV①UV大于IP②UV小于IP 三者的关系PV 和 UV 前言 PV、UV、IP是我们在运…

92.使用数组形式的责任链模式实现项目配置初始化

文章目录 前言示例 前言 Golang 中&#xff0c;可以使用接口&#xff08;interface&#xff09;来实现一种配置模式&#xff0c;其中配置对象实现一个接口&#xff0c;并提供一个Apply()方法来应用配置。这样&#xff0c;可以使用不同的配置对象来配置不同的行为&#xff0c;而…

深度学习入门笔记(九)自编码器

自编码器是一个无监督的应用&#xff0c;它使用反向传播来更新参数&#xff0c;它最终的目标是让输出等于输入。数学上的表达为&#xff0c;f(x) x&#xff0c;f 为自编码器&#xff0c;x 为输入数据。 自编码器会先将输入数据压缩到一个较低维度的特征&#xff0c;然后利用这…

Vue3.0(五):Vue-Router 4.x详解

Vue-Router详解 vue-router教程 认识前端路由 路由实际上是网络工程中的一个术语 在架构一个网络的时候&#xff0c;常用到两个很重要的设备—路由器和交换机路由器实际上就是分配ip地址&#xff0c;并且维护着ip地址与电脑mac地址的映射关系通过映射关系&#xff0c;路由器…

读懂 FastChat 大模型部署源码所需的异步编程基础

原文&#xff1a;读懂 FastChat 大模型部署源码所需的异步编程基础 - 知乎 目录 0. 前言 1. 同步与异步的区别 2. 协程 3. 事件循环 4. await 5. 组合协程 6. 使用 Semaphore 限制并发数 7. 运行阻塞任务 8. 异步迭代器 async for 9. 异步上下文管理器 async with …