语言月赛七月T7题解

· · 题解

Source & Knowledge

2024 年 7 月语言月赛,由洛谷网校入门计划/基础计划提供。

题目大意

输入整数 nn 个字符串和 k 个数,这些数表示如何将字符串分成几段,你需要在每一段里判断是否有这个单词,统计答案并输出。

题目分析

本题考察字符串及其相关函数的运用。

我们知道有一个函数 s.find(),他的功能是在个字符串里面查找指定字符串,这显然可以见到的在分段后判断每一段里是否有 \texttt{respect}。那问题就转化为了如何将字符串正确的分段。

我们知道 a_i 的定义是每个段的起始位置,同时,我们可以想到,a_{i+1} 是第 i 个段的终止位置,对于第一个段,他没有给出初始位置,但显然他的其实为啥是字符串的开头也就是 0a_0 = 0,而第 k 段没有给出终止位置,但显然他的终止位置是该字符串的末尾,即 a_{k+1} 的值为字符串的长度,此时我们知道了每一段的初始位置和结束位置。

无论是暴力的组合出一个字符串还是使用 STL 里自带的 s.substr() 函数,都有可以将每一段单独拆出来作为一个独立的字符串,再进行 s.find() 操作即可判断每一段里是否有 \texttt{respect} 统计答案并输出即可完成此题。

要注意的是本题为多测应及时清空一些变量的值避免出现错误。

视频题解