B3726 [语言月赛202303] String Problem P
[语言月赛202303] String Problem P
题目描述
Farmer John 有 n n n 个字符串,第 i i i 个字符串为 s i s_i si。
现在,你需要支持如下 q q q 次操作:
1 x y i
:把字符串 s x s_x sx 整体插入到字符串 s y s_y sy 的第 i i i 个字符后,更新 s y s_y sy。2 y
:求 s y s_y sy。
例如,设 s 1 = abc s_1 = \texttt{abc} s1=abc, s 2 = xyz s_2 = \texttt{xyz} s2=xyz,则执行完 1 2 1 2
后(把 s 2 s_2 s2 整体插入到 s 1 s_1 s1 的第 2 2 2 个字符后,更新 s 1 s_1 s1), s 1 = abxyzc s_1 = \texttt{abxyzc} s1=abxyzc, s 2 = xyz s_2 = \texttt{xyz} s2=xyz。
输入格式
第一行是两个整数,表示字符串数量 n n n 和操作的数量 q q q。
接下来 n n n 行,每行一个字符串,第 i i i 行的字符串为 s i s_i si。
接下来 q q q 行,每行四个或二个整数,依次表示每次操作。具体格式见『题目描述』。
输出格式
对每次操作 2 2 2,输出一行一个字符串,表示被询问的串。
样例 #1
样例输入 #1
2 2
a
b
1 1 2 1
2 2
样例输出 #1
ba
样例 #2
样例输入 #2
3 6
abc
ijk
xyz
1 2 3 2
1 1 3 5
1 3 1 1
2 1
2 2
2 3
样例输出 #2
axyijkabczbc
ijk
xyijkabcz
提示
数据规模与约定
- 对 60 % 60\% 60% 的数据,保证 i = ∣ s y ∣ i = |s_y| i=∣sy∣。
- 对 100 % 100\% 100% 的数据, 1 ≤ n , q ≤ 10 1 \leq n,q \leq 10 1≤n,q≤10, 1 ≤ ∣ s i ∣ ≤ 10 1 \leq |s_i| \leq 10 1≤∣si∣≤10。 1 ≤ x , y ≤ n 1 \leq x, y \leq n 1≤x,y≤n, 1 ≤ i ≤ ∣ s y ∣ 1 \leq i \leq |s_y| 1≤i≤∣sy∣。
其中 ∣ s y ∣ |s_y| ∣sy∣ 表示进行对应操作时 s y s_y sy 的长度, ∣ s i ∣ |s_i| ∣si∣ 表示输入时字符串的长度。
解析
这是一道关于字符串操作的题目,需要我们实现字符串的插入和查询功能。下面是使用C++语言的解题思路和代码实现:
解题思路:
- 使用vector存储给定的n个字符串。
- 对于操作1,将字符串sx插入到字符串sy的第i个字符后,可以使用string的insert方法实现。
- 对于操作2,直接输出对应下标的字符串即可。
C++代码实现:
#include <iostream>
#include <vector>
#include <string>
using namespace std;int main() {int n, q;cin >> n >> q;vector<string> strings(n);for (int i = 0; i < n; i++) {cin >> strings[i];}while (q--) {int op;cin >> op;if (op == 1) {int x, y, i;cin >> x >> y >> i;x--, y--, i--;strings[y].insert(i, strings[x]);} else if (op == 2) {int y;cin >> y;y--;cout << strings[y] << endl;}}return 0;
}
代码解释:
- 首先输入字符串的数量n和操作的数量q。
- 创建一个vector类型的变量strings,用于存储给定的n个字符串。
- 使用循环输入n个字符串,将它们存储到strings中。
- 使用while循环处理q次操作:
- 如果操作类型为1,则输入x,y,i,并将下标减1(因为题目中的下标从1开始)。使用insert方法将字符串sx插入到字符串sy的第i个字符后。
- 如果操作类型为2,则输入y,将下标减1,并输出对应下标的字符串。
- 程序结束,返回0。
时间复杂度分析:
- 设字符串的平均长度为L。
- 对于操作1,插入操作的时间复杂度为O(L),因为插入操作需要移动字符串中的字符。
- 对于操作2,输出操作的时间复杂度为O(L),因为需要输出整个字符串。
- 总共有q次操作,因此总的时间复杂度为O(qL)。
空间复杂度分析:
- 使用vector存储n个字符串,每个字符串的平均长度为L,因此空间复杂度为O(nL)。
这个解法使用了vector和string类型,通过insert方法实现了字符串的插入操作,并直接输出对应下标的字符串来实现查询操作。如果你有任何其他问题或需要进一步的解释,请随时告诉我。
相关文章:
B3726 [语言月赛202303] String Problem P
[语言月赛202303] String Problem P 题目描述 Farmer John 有 n n n 个字符串,第 i i i 个字符串为 s i s_i si。 现在,你需要支持如下 q q q 次操作: 1 x y i:把字符串 s x s_x sx 整体插入到字符串 s y s_y sy …...

htb-linux-3-shocker
nmap web渗透 由于只有80端口,只考虑目录扫描和静态文件提醒 为什么能能知道http://10.10.10.56/cgi-bin/user.sh? 因为百度的 curl访问该文件 shell flag root...
Elasticsearch - No mapping found for [field_name] in order to sort on
chax根据关键字Action, MD5,模糊索引202*.log查询 curl -u user:password -H "Content-Type: application/json" http://127.1:9200/202*.log/_search?pretty -XPOST -d {"query": {"bool": {"should": [{"bool"…...
Lua 元表(Metatable)深入解析
Lua 元表(Metatable)深入解析 Lua 是一种轻量级的编程语言,因其简洁性和强大的扩展能力而被广泛应用于游戏开发、脚本编写和其他领域。在 Lua 中,元表(Metatable)是一个非常重要的概念,它允许我…...
MySQL Show命令集
MySQL SHOW 命令 1、mysql shell 查看帮助show (rootlocalhost) [(none)]> \help show Name: SHOW Description: SHOW has many forms that provide information about databases, tables, columns, or status information about the server. This section describes thos…...

倩女幽魂搬砖攻略:云手机自动托管搬砖刷本选哪家云手机?
欢迎来到《倩女幽魂手游》的世界,一个充满江湖恩怨的世界。在这个游戏中,你将扮演各个门派中的不同职业,踏上一段属于你自己的江湖之路。本攻略将为你详细介绍如何利用多开挂机搬砖,快速提升自己的实力,成为江湖中的一…...

php7.3安装phalcon扩展
php7安装3.4版本的phalcon扩展 适用于Centos6.x和Centos7.x系统,php使用7.1版本,wlnmp一键包已支持该扩展 phalcon扩展包地址:https://github.com/phalcon/cphalcon (git clone 有可能连接不上) 1、安装所需依赖&a…...

IIoT(智能物联网)的现状、应用及安全
近年来,物联网(IoT)作为推动现代公司和智能城市发展的一个范式,已经取得了显著的发展。IoT使得分布式设备(如手机、平板电脑和计算机)能够感知并从外部环境传输数据,以服务于最终用户。IoT的概念…...

YOLOv8_obb的训练、验证、预测及导出[旋转目标检测实践篇]
1.旋转目标检测数据集划分和配置 从上面得到的images和labels数据还不能够直接训练,需要按照一定的比例划分训练集和验证集,并按照下面的结构来存放数据,划分代码如下所示,该部分内容和YOLOv8的训练、验证、预测及导出[目标检测实践篇]_yolov8训练测试验证-CSDN博客是重复的…...

C语言实战:贪吃蛇(万字详解)
💡目录 效果图 界面设计思路 1. 基本布局 2. 视觉元素 游戏机制设计 基本规则 游戏代码 前期准备 游戏代码详解 数据结构设计 宏定义 数据结构定义 函数原型(详见后文) 主函数代码 核心代码 Review 效果图 界面设计思路 1. 基…...
定时器更新界面,线程报错
项目场景: 在javafx框架下使用线程更新UI的时候,出现无法正常更新UI。 问题代码如下: package clock;import java.util.Calendar; import java.util.GregorianCalendar; import java.util.Timer; import java.util.TimerTask;import javaf…...

未来AI大模型的发展趋势
大家好,我是小悟 未来AI大模型的发展趋势无疑将是多元化、高效化、普及化以及人性化。随着技术的飞速进步,AI大模型将在各个领域中展现出更加广泛和深入的应用,成为推动社会进步的重要力量。 多元化是AI大模型发展的重要方向。随着数据量的…...

【JavaScript函数详解】Day04
JavaScript函数详解 JavaScript 基础 - 第4天笔记函数声明和调用声明(定义)调用 参数形参和实参参数默认值 返回值函数补充细节作用域全局作用域局部作用域变量的访问原则 匿名函数函数表达式立即执行函数 逻辑中断小知识(转换为Boolean型&am…...

json和axion结合
目录 java中使用JSON对象 在pom.xml中导入依赖 使用 public static String toJSONString(Object object)把自定义对象变成JSON对象 json和axios综合案例 使用的过滤器 前端代码 响应和请求都是普通字符串 和 请求时普通字符串,响应是json字符串 响应的数据是…...

v1.2.70-FastJson的AutoType机制研究
v1.2.70-FastJson的AutoType机制研究 最近在对接Alexa亚马逊语音技能,Smart Home Skill Apis时,有一个配置的JSON字符串是这样的: { "capabilityResources": {"friendlyNames": [{"type": "asset",…...

老旧机子装linux——Xubuntu
目录 前言 正文 下载系统 编辑 制作系统盘: 安装界面 Xubuntu 编辑 lubuntu 后语 前言 有两台电脑,一台装了Ubuntu22,一台装了debuntu。虽然debuntu界面与乌班图大体一样,但是编译器好像有点区别。由于机子为10年前的老…...
关于Redis中事务
事务的四个特性 Redis到底有没有原子性 Redis中的原子性不同于MySQL,相比于MySQL,Redis中的原子性几乎不值一提。 MySQL中的原子性,不仅仅是“要么全都执行,要么全都不执行”,它还保证了“一旦执行,结果…...

【数据分享】《中国文化文物与旅游统计年鉴》2022
最近老有同学过来询问《中国旅游年鉴》、《中国文化文物统计年鉴》、《中国文化和旅游统计年鉴》、《中国文化文物与旅游统计年鉴》,这四本年年鉴的关系以及怎么获取这四本年鉴。今天就在这里给大家分享一下这四本年鉴的具体情况。 实际上2018年,为适应…...
设计模式及其在软件开发中的应用
一、技术难点 设计模式在软件开发中扮演着至关重要的角色,但它们的应用也伴随着一系列技术难点。 模式选择与识别:在实际项目中,正确识别和选择合适的设计模式是一个挑战。不同的设计模式适用于不同的场景,错误的选择可能导致系统…...

LeetCode72编辑距离
题目描述 解析 一般这种给出两个字符串的动态规划问题都是维护一个二维数组,尺寸和这两个字符串的长度相等,用二维做完了后可以尝试优化空间。这一题其实挺类似1143这题的,只不过相比1143的一种方式,变成了三种方式,就…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...

C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)
目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 (1)输入单引号 (2)万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...
上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...