[Daimayuan] 子串的循环挪动(C++,模拟)

news/2024/4/21 1:32:27/

给出一个字符串 s s s,你需要执行 m m m 个任务。每个任务给出两个下标 l i , r i l_i,r_i li,ri 和一个整数 k i k_i ki(字符串的下标从 1 1 1 开始),表示你需要循环挪动 s s s 的子串 s [ l i . . . r i ] k i s[l_i...r_i]\ k_i s[li...ri] ki 次。请从前到后依次执行给出的每个任务。

字符串的循环挪动操作:将最后一个字符移到第一个字符的位置,并且将其他所有字符向右移一个位置。

比如:如果字符串 s s sabacaba,一个任务为 l 1 = 3 , r 1 = 6 , k 1 = 1 l_1=3,r_1=6,k_1=1 l1=3,r1=6,k1=1,那么答案为 abbacaa。接下来一个任务为 l 2 = 1 , r 2 = 4 , k 2 = 2 l_2=1,r_2=4,k_2=2 l2=1,r2=4,k2=2,那么我们会得到 baabcaa

输入格式

第一行一个字符串 s s s,该字符串只包含小写英文字符。

第二行一个整数 m m m,表示任务个数。

接下来 m m m 行每行有三个整数 l i , r i l_i,r_i li,ri k i k_i ki

输出格式

输出执行了 m m m 个任务后的最终的字符串 s s s

样例输入

abacaba
2
3 6 1
1 4 2

样例输出

baabcaa

数据规模

对于所有数据保证, 1 ≤ ∣ s ∣ ≤ 10000 1≤|s|≤10000 1s10000 ∣ s ∣ |s| s 表示字符串 s s s 的长度), 1 ≤ m ≤ 300 1≤m≤300 1m300 1 ≤ l i ≤ r i ≤ ∣ s ∣ 1≤l_i≤r_i≤|s| 1liris 1 ≤ k i ≤ 1000000 1≤k_i≤1000000 1ki1000000

解题思路:

步骤如下:

(1)对 k = k % l e n k=k\%len k=k%len(因为循环移动 l e n = r − l + 1 len = r - l + 1 len=rl+1次之后,子串与操作前一致)

(2)取出子串尾部 k k k个字符缓存

(3)将前 l e n − k len - k lenk个字符向后移动 k k k

(3)将缓存的字符放回子串首部

p s ps ps:本来想先用模拟尝试深入理解一下题目,看一眼数据规模发现好像能过,结果就过了 q w q qwq qwq

AC代码如下

#include <iostream>
using namespace std;
const int max_len = 1e4;char str[max_len + 1];
char buffer[max_len + 1];int main() {char c = '\0';int len = 0;while ((c = getchar()) != '\n' && c != '\r') {str[len++] = c;}str[len] = '\0';int t, l, r, k;cin >> t;for (int i = 0; i < t; i++) {cin >> l >> r >> k;k %= r - l + 1; l--; r--;for (int j = r - k + 1; j <= r; j++) {buffer[j] = str[j];}for (int j = r - k; j >= l; j--) {str[j + k] = str[j];}for (int j = r - k + 1, idx = l; j <= r; j++, idx++) {str[idx] = buffer[j];}}cout << str << endl;return 0;
}

http://www.ppmy.cn/news/46813.html

相关文章

生产制造企业如何建立适合自身的数字化工厂,实现数字化转型?

“工业4.0”这一全新的术语受到全球的瞩目&#xff0c;它是继机械化、电气化和信息技术之后&#xff0c;以智能制造为核心的第四次工业革命。“工业4.0”最显著的特征是智能工厂的广泛普及。而智能工厂是在数字化工厂的基础上发展而来的&#xff0c;没有数字化就没有智能化。因…

无需公网IP,远程连接SQL Server数据库【内网穿透】

文章目录 1.前言2.本地安装和设置SQL Server2.1 SQL Server下载2.2 SQL Server本地连接测试2.3 Cpolar内网穿透的下载和安装2.3 Cpolar内网穿透的注册 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 数据库的重要性相信大家都有所了解&…

仿真创新大赛—国三省一 智能鱼缸(proteus)(stm32)

⏩ 大家好哇&#xff01;我是小光&#xff0c;嵌入式爱好者&#xff0c;一个想要成为系统架构师的大三学生。 ⏩去年下半年参加了全国仿真创新大赛&#xff0c;也是取得了国赛三等奖&#xff0c;省赛一等奖的好成绩。 ⏩本篇文章对我们的参赛作品《智能鱼缸》做一个简介。 ⏩感…

软件测试——概念篇

目录 一、软件的生命周期 二、瀑布模型&#xff08;Waterfall Model&#xff09; 优点&#xff1a; 缺点&#xff1a; 三、螺旋模型&#xff08;Spiral Model&#xff09; ​编辑优点&#xff1a; 缺点&#xff1a; 四、增量、迭代 区别&#xff1a; 五、敏捷 scrum…

滚动条如何设置样式和滚动条悬浮显示与隐藏

文章目录 一、滚动条如何设置样式1&#xff1a;滚动条的默认样式&#xff08;如下图&#xff09;1&#xff1a;html代码2&#xff1a;css代码3&#xff1a;效果图 2&#xff1a;CSS设置滚动条的属性&#xff08;重点&#xff09;3&#xff1a;设置滚动条的例子1&#xff1a;css…

【Unity+MySQL】实现注册登录系统(升级版)

目录 1 UI界面重新设计1.1 注册界面1.2 登录界面1.3 交互实现 2 注册功能完善2.1 判断用户输入的用户名是否与数据库中的重复2.2 将当前时间更新至用户表的当前注册时间列2.3 将用户输入的注册密码使用哈希加密 3 登录功能完善4 总体功能流程图 接着 上篇文章所谈到的系统缺陷…

如何招生?一文教你高职院校有效的招生技巧

生源&#xff0c;是每一所高校的生存之本和生命线。 近几年招生宣传工作作为高职院校招生工作中的重要环节之一&#xff0c;具有政策性强&#xff0c;涉及面广&#xff0c;工作量大等特点&#xff0c;直接关系到学校可持续发展问题。 随着新媒体时代的发展&#xff0c;高职院…

深度学习中的卷积神经网络

博主简介 博主是一名大二学生&#xff0c;主攻人工智能研究。感谢让我们在CSDN相遇&#xff0c;博主致力于在这里分享关于人工智能&#xff0c;c&#xff0c;Python&#xff0c;爬虫等方面知识的分享。 如果有需要的小伙伴可以关注博主&#xff0c;博主会继续更新的&#xff0c…

Mysql安装详细教程

数据库相关概念 而目前主流的关系型数据库管理系统的市场占有率排名如下&#xff1a; Oracle&#xff1a;大型的收费数据库&#xff0c;Oracle公司产品&#xff0c;价格昂贵。 MySQL&#xff1a;开源免费的中小型数据库&#xff0c;后来Sun公司收购了MySQL&#xff0c;而Oracle…

Netty Jemalloc4算法-核心数据结构图示

Netty 从4.1.52版本开始&#xff0c;其内存分配算法&#xff0c;从jemalloc3 切换到了 jemalloc4。本文给出该算法涉及的核心数据结构图示&#xff1a; 想要看懂上图, 要点如下&#xff1a; 1. 小于等于16777216字节的空间&#xff0c;从chunk(一个16M的字节数组)中分配&#…

Python第三方库安装

看见更大的Python世界 Python社区PyPI The Python Package Index PyPI: Python Package Index PSF维护的展示全球Python计算生态的主站 学会检索并利用PyPI&#xff0c;找到合适的第三方库开发程序 实例&#xff1a;开发与区块链相关的程序 第1步&#xff1a;在pypi.org…

【电动汽车充电站有序充电调度的分散式优化】基于蒙特卡诺和拉格朗日的电动汽车优化调度(分时电价调度)(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

原创文章生成器在线版-ai写作生成器

随着人工智能技术的迅猛发展&#xff0c;越来越多的人开始意识到&#xff0c;利用AI可以实现许多以前不可能想象的事情。其中&#xff0c;一种最能体现人工智能技术优势的应用就是“ai原创文章生成器”。它可以为营销从业者提供一种全新的营销推广方式。 那么&#xff0c;什么是…

CAD 二次开发-Handle

在 CAD 二次开发中&#xff0c;Handle 是每个 CAD 实体的唯一标识符&#xff0c;类似于一个 ID。它是一个 long 类型的整数&#xff0c;可以用于标识和引用 CAD 实体&#xff0c;如图形对象、块、图层、实体等。 使用 Handle 可以方便地操作 CAD 实体&#xff0c;例如&#xf…

Java8 判空新写法(Optional方式)

1 引言 在文章的开头&#xff0c;先说下NPE问题&#xff0c;NPE问题就是&#xff0c;我们在开发中经常碰到的NullPointerException.假设我们有两个类&#xff0c;他们的UML类图如下图所示 在这种情况下&#xff0c;有如下代码 user.getAddress().getProvince();这种写法&…

Lumen6 /laravel 框架路由请求实现token验证

版本 Lumen6.0 中文文档&#xff1a;https://learnku.com/docs/lumen/5.7/cache/2411 实现功能效果 1、使用缓存存储用户token 2、从请求头head 中获取用户token 3、返回指定的认证失败结构体 4、对指定的接口路由做身份验证 第一步&#xff1a;解除注释 注意&#xff1…

Java的7大好处

Java 的 7 大优势 当 Sun Microsystems 在 1995 年发布 Java 语言环境白皮书时&#xff0c;他们列出了 Java 将给软件开发领域带来的以下 7 大好处&#xff1a; Java 简单而熟悉。Java是面向对象的。Java 是体系结构中立的。Java 健壮且安全。Java是多线程的。Java具有高性能。…

哈希表题目:在系统中查找重复文件

文章目录 题目标题和出处难度题目描述要求示例数据范围进阶 解法思路和算法代码复杂度分析 进阶问题答案后记 题目 标题和出处 标题&#xff1a;在系统中查找重复文件 出处&#xff1a;609. 在系统中查找重复文件 难度 6 级 题目描述 要求 给定一个目录信息列表 paths…

入门神经网络——浅层神经网络

文章目录 一、基础知识1.浅层神经网络介绍2.浅层神经网络的正向传播3.反向传播 二、浅层神经网络代码实例 一、基础知识 1.浅层神经网络介绍 此次构件浅层神经网络&#xff0c;相比于单神经元&#xff0c;浅层神经网络拥有多个神经元&#xff0c;因此又可以称为多神经元网络&…

Ubuntu 自带截图工具快捷键盘

PrtSc – 获取整个屏幕的截图并保存到 Pictures 目录。 Shift PrtSc – 获取屏幕的某个区域截图并保存到 Pictures 目录。 Alt PrtSc –获取当前窗口的截图并保存到 Pictures 目录。 Ctrl PrtSc – 获取整个屏幕的截图并存放到剪贴板。 Shift Ctrl PrtSc – 获取屏幕的某个…