• [Muse Dash] 乐串


    传送门 luogu U139568

    题目背景

    (Welcome ~~ to~ ~Muse~ Dash ~!)

    题目描述

    题目共给出 (T) 组字符串。你需要对题目中每组字符串 (s) 进行判断操作。

    • 长条:以两个字符 O (大写字母 O)为起点和终点的字符串。它分为 “合法长条” 和 “不合法长条” 两种。题目所给的每组字符串里可以包含多个长条。

    • 连接符:字符 - (减号)。它仅能出现在长条的起点和终点之间,一个长条中可以有多个连接符。

    • 占位符:字符 .(25) 个大写英文字母(没有大写 O ) 。它们仅能出现在长条之外,起占位作用。

    • 合法长条:在长条中间可以有并且仅能有连接符连接,也可以没有连接符连接;而且此长条的起点不能为其他长条的终点,此长条的终点不能为其他长条的起点,即字符 O 不能同时为两个不同长条的组成元素。

    如果一个长条不满足上述合法长条的定义,那么这个长条就为 “不合法长条” 。

    寻找字符串中长条的顺序:从左至右。各个长条分别取交集的集合都必须为空集。即如果已经找到一个字符 O 为长条的起点,那么右边离它最近的字符 O 就必须为这个长条的终点。具体见样例的第 (4) 组数据。

    题目所给的每组字符串分为 “黑乐串” 和 “白乐串”。符合黑乐串的条件为:

    1. 本组字符串中有 “不合法长条” 。
    2. 连接符出现在了长条外。
    3. 存在一长条只有起点没有终点。

    白乐串即为非黑乐串的字符串。现在,你需要判断每组字符串是白乐串还是黑乐串。

    输入格式

    第一行为两个字符 T= 和一个正整数 (T)(T) 代表数据组数。

    在每组数据中:第一行输入一个正整数 (n) ,代表字符串长度,第二行输入一个非空字符串 (s) ,代表需要判断的字符串。

    字符串 (s) 中的每个字符保证为 (26) 个大写英文字母 和 .- 之一。确保每个字符串 (s) 中都出现字符 O

    输出格式

    输出共 (T) 行。

    每一行为 YesNo ,分别代表该组数据是白乐串或黑乐串。

    样例输入 #1

    T=4
    4
    O--O
    4
    .OO.
    5
    O-OOO
    15
    O--OO-OOOO-O.OO
    

    样例输出 #1

    Yes
    Yes
    Yes
    Yes
    

    样例输入 #2

    T=4
    5
    -O--O
    5
    O-.-O
    7
    O-O-O-O
    21
    O-O.I.AK.IOOI.AK..O--
    

    样例输出 #2

    No
    No
    No
    No
    

    数据范围

    对于前10%的数据,保证所有字符串为黑乐串 .

    对于前30%的数据,保证 (T<10,n<200) .

    对于前50%的数据, 保证 (T<20,n<5000) .

    对于前80%的数据,保证 (T<30,n<50000) .

    对于另外10%的数据,保证 (T=2,n=2333333) .

    对于再另外10%的数据,保证 $ T=2,n=23333333$ .

    时间限制:前90%的数据为 (1s),后10%的数据为 (2s)

    空间限制:(10MB)

    样例解释:

    设每个字符串 (s) 中,从左往右数第一个字符的位置为 (1)

    #1
    1. 对于字符串 .OO. ,其中包含一个合法长条 ([2,3]) 。注意合法长条的定义。
    2. 对于字符串 O-OOO ,其中包含 (2) 个合法长条,分别为 ([1,3],[4,5])
    3. 对于 O--OO-OOOO-O.OO ,包含 (5) 个合法长条,分别为 ([1,4],[5,7],[8,9],[10,12],[14,15])
    #2
    1. 对于 -O--O ,字符 (1) 不应该出现在长条外。
    2. 对于 O-.-O ,字符 (3) 不应该出现在长条内。
    3. 对于 O-O-O-O ,存在两个合法长条:([1,3],[5,7]) 。对于字符 (4) ,因为在 ([1,3]) 已经构成长条,则字符 (4) 位于长条外,这是被禁止的。
    4. 对于 O-O.I.AK.IOOI.AK..O--(长度为21) ,字符 (19) 之前无异常现象。字符 (19) 作为新长条的起点,在它右边没有找到终点。
  • 相关阅读:
    ASP.NETCore -----导出Excel文件并下载
    NPOI操作excel
    各种raid对比
    python带参函数(计算器脚本解释标注)
    GlusterFS群集存储项目
    PYTHON定义函数制作简单登录程序(详细)
    Python编写脚本(输出三星形状的‘*’符号)
    PYTHON常用数据类型(列表,元组,字典)
    SQL server常用函数使用示例
    sql 语句-初级进阶(二)
  • 原文地址:https://www.cnblogs.com/EdisonBa/p/14075688.html
Copyright © 2020-2023  润新知