1 条题解

  • 0
    @ 2025-8-24 21:14:57

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar 一扶苏一
    休息结束。邮箱 yifusuyi@qq.com

    搬运于2025-08-24 21:14:56,当前版本为作者最后更新于2020-01-06 17:29:09,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    [语言月赛202305H] 制糊串 题解

    Source & Knowledge

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

    本题考查字符串处理。

    文字题解

    题目大意

    给定两个字符串 s,ts, t,有 qq 次询问,每次给出 l1,r1,l2,r2l_1, r_1, l_2, r_2,问 s[l1,r1]s[l_1, r_1]t[l2,r2]t[l_2, r_2] 的字典序大小关系。

    解析

    本题有两个关键点:

    提取子串

    stringsubstr(pos, len) 函数可以截取一个字符串的第 pospos 个字符起长度为 lenlen 的子串。注意这里 pospos 的编号是从 00 开始的。例如,如果 s=abcs = \texttt{abc},则 s.substr(1,2) 的结果是 bc\texttt{bc}

    子串 s[l1,r1]s[l_1, r_1] 的起始位置 pos=l11pos = l_1 - 1,长度为 len=r2l1+1len = r_2 - l_1 + 1

    于是,提取 s[l1,r1]s[l_1, r_1] 的语句为 x = s.substr(l1 - 1, r1 - l1 + 1)

    类似地,提取 t[l2,r2]t[l_2, r_2] 的语句为 y = t.substr(l2 - 1, r2 - l2 + 1)

    字典序比较

    可以直接用字符串的小于运算比较两个字符串的大小关系。当 xx 的字典序小于 yy 的字典序时,返回值为真;否则返回假。

    x < yx > y 均不成立时,自然说明两字符串大小相等。

    if (x < y) {
      cout << "yifusuyi\n";
    } else if (x > y) {
      cout << "erfusuer\n";
    } else {
      cout << "ovo\n";
    }
    

    视频题解

    • 1

    信息

    ID
    8745
    时间
    1000ms
    内存
    512MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者