AT_ttpc2015_p.Dancing stars on regular expression!
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
在这里,我们称以下结构的字符串为“正则表达式”:
$ e $ ::= $ a...a $ | ($ e_1 + e_2 )∣( e_1 ; e_2 ) | \*( e_1 )∣!( e_1 $)
其中,$ a...a $ 表示由字符 $ a $ 连续重复一次或多次构成的字符串。
正则表达式 $ e $ 所代表的字符串集合 $ L(e) $ 可以通过下面的规则递归定义:
- $ L(a...a)\ =\ {a...a} $,如 $ L(aa)\ =\ {aa} $, $ L(aaa)\ =\ {aaa} $。
- $ L((e_1+e_2))\ =\ L(e_1)\ ∪\ L(e_2) $ 是 $ L(e_1) $ 和 $ L(e_2) $ 中任一集合中元素的合集。
- $ L((e_1;e_2))\ =\ L(e_1)L(e_2) $,即 $ L(e_1) $ 中的字符串与 $ L(e_2) $ 中的字符串组合而成的所有字符串形成的集合。
- $ L(*(e_1)) $ 表示 $ L(e_1) $ 中字符串的任意次数(包括零次)连接。
- $ L(!(e_1))\ =\ Σ^*\ -\ L(e_1) $,即从所有可能字符串中除去 $ L(e_1) $ 的集合。
这里,$ Σ^* $ 是所有可能字符串的集合,形如 $ {ε,a,aa,aaa,\ldots} $,由 $ a $ 字符有限次重复组成。
另外,无 ! 正则表达式表示不包含 ! 操作符的表达式,而无 * 正则表达式表示不包含 * 操作符的表达式。
现在给你一个无 ! 的正则表达式 $ S $,请判断是否存在一个无 * 的正则表达式 $ T $,使得 $ L(S) = L(T) $。
输入格式
输入为以下格式:
- 第一行是一个整数 $ N $ ($ 1 \leq N \leq 4000 $),表示第二行输入的字符串 $ S $ 的长度。
- 第二行是一个无
!正则表达式的字符串 $ S $。
输出格式
如果存在一个无 * 的正则表达式 $ T $ 满足 $ L(S) = L(T) $,输出 YES;否则,输出 NO。
数据范围与提示
- 示例 1:可以选择 $ T = (a+aa) $ 作为答案。
- 示例 2:可以选择 $ T = (!(a)+a) $ 作为答案。
- 示例 3:不存在符合 $ L(S) = L(T) $ 的无
*正则表达式 $ T $。
本翻译由 AI 自动生成
输入输出样例
输入#1
6 (a+aa)
输出#1
YES
输入#2
17 (*(aa)+(*(aa);a))
输出#2
YES
输入#3
14 (*(aa)+*(aaa))
输出#3
NO
输入解题思路,AI测评打分。不知道怎么写?