ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

[Muse Dash] 谱面(弱化版)

2020-11-05 16:02:51  阅读:361  来源: 互联网

标签:No OOO Muse Dash 黑乐串 谱面 字符串 Yes 长条


传送门 luogu U139568

题目背景

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

题目描述

题目共给出 \(T\) 组字符串。

你需要对题目中每组字符串进行判断。字符串分为 “黑乐串” 和 “白乐串” 。

长条为一条以两个字符 O (大写字母O)为起点和终点的字符串。它分为 “合法长条” 和 “不合法长条” 两种。

合法长条的定义:在长条中间可以有并且仅能有字符 -(减号) 连接,也可以没有 - 连接。另外,- 只能在长条中出现,如果 - 出现在了非长条中,这个字符串是黑乐串。

如果一个长条不满足上述合法长条的定义,那么这个长条就不合法,则字符串是黑乐串。

遍历题目所给的字符串的顺序:从左至右。题目给的字符串里可以包含多个长条,但是各个长条分别取交集的集合都必须为空集。也就是说如果一个字符串的左边部分已经形成长条,那么在处理这个长条右边时就可以忽略掉左边的部分。具体见样例的第 \(4\) 组数据。

占位符:字符 . 和 \(26*2\) 个大小写英文字母(除了大写 O ) ,它们仅能出现在长条外面,起占位作用,如果它出现在长条内,则长条不合法,字符串是黑乐串。

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

输入格式

第一行为两个字符和一个数字 \(T\) ,代表数据组数。

在每组数据中:第一行输入一个正整数 \(n\) 代表字符串长度,第二行输入一个非空字符串 \(s\) ,代表需要判断的字符串。字符串 \(s\) 包含 \(26*2\) 个大小写英文字母 和 .- ,不包含除此之外的任何东西。

输出格式

输出共 \(T\) 行。

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

样例输入

T=8
5
O---O
8
O-NMSL-O
3
-OO
7
O-O-O-O
5
O-OOO
14
O--OO-OOOO-OOO
31
...OOO-O.O--O...OOO-OO-O..O-O..
20
OOOOOOOOOO...O----.O

样例输出

Yes
No
No
No
Yes
Yes
Yes
No

数据范围

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

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

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

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

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

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

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

空间限制:\(10MB\)

样例解释

​ **设第一个字符的位置为 \(1\) **

  1. O---O,显然是Yes。

  2. O-NMSL-O,因为长条中有奇怪的字符,显然是No。

  3. -OO,显然是No。

  4. O-O-O-O 因为 \([1,3]\) 已经构成长条,所以字符 \(4\) 的左边应忽略前三个字符,则字符 \(4\) 找不到合适的起点 O ,使得字符串为黑乐串,No。

  5. O-OOO 字符串中包含两个合法的长条,Yes。

  6. O--OO-OOOO-OOO 字符串中包含 5 个合法的长条,Yes。

    合法长条:\([1,4],[5,7],[8,9],[10,12],[13,14]\) 。

  7. ...OOO-O.O--O...OOO-OO-O..O-O..

    合法长条:\([4,5],[6,8],[10,13],[17,18],[19,21],[22,24],[27,29]\) 。

  8. 位置为 \(19\) 的字符不应该出现在长条 \([14,20]\) 中。

题目附件

data.zip 530.46KB

标签:No,OOO,Muse,Dash,黑乐串,谱面,字符串,Yes,长条
来源: https://www.cnblogs.com/EdisonBa/p/13932177.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有