U673058 Day and Night

题目背景

![《法厄同驾驶阿波罗的太阳车》(phaetondrivingthesun-chariotofApollo)](https://cdn.luogu.com.cn/upload/image_hosting/cuudfalz.png?x-oss-process=image/resize,m_lfit,h_170,w_225)     希腊神话中,白昼与黑夜的交替,是太阳神赫利俄斯每日必须完成的伟大旅程。每天清晨,他驾驭着燃烧烈焰的太阳金车,从东方升起,驱散黑暗,为人间带来光明与白昼;当傍晚的暮色降临,他完成横跨天空的使命,在西边缓缓沉入环绕大地的俄刻阿诺斯大洋,随后乘一艘金船悄然返回东方。在他离去后,夜幕笼罩世界,这便是昼夜循环的故事。     但是,太阳神赫利俄斯英俊但鲁莽的儿子法厄同曾强驾太阳金车,因无法控制神马而偏离轨道,致使天空忽明忽暗,他需要你的帮助!

题目描述

序列由 `D`(白昼)和 `N`(黑夜)组成,如果某段序列总是`D` 和 `N` 交替出现,也就是说,如果其中两个连续字符总是不同,我们称这段序列是**秩序**的; 法厄同会告诉你他排列的序列——一个长度为 $n$ 的字符串 $S$ ,由 `D` 和 `N` 组成; 法厄同将给出 $q$ 个请求,你必须按顺序处理; 请求有两种类型,`spell`和`ask`,序列下标(从1开始) $L$ 和 $R$ : - 反转咒术`spell`:法厄同释放反转咒术,反转 $S$ 的每个 $L$ 到 $R$ 的字符。也就是说,对于每个满足 $L\leq i\leq R$ 的整数 $i$ ,如果 $S$ 的第 $i$ 个字符是 "D",则将其改为 "N",反之亦然,你不需要做任何事,无需输出任何。 - 查询请求`ask`:设 $S'$ 是通过提取 $S$ 的 第 $L$ 个字符到第 $R$ 个字符得到的长度为 $(R-L+1)$ 的子序列,法厄同希望你告诉他 $S'$ 是否是秩序的。 如果 $S'$ 是**秩序**的,则输出 "Yes",否则输出 "No"。

输入格式

输入内容格式如下 ``` n Q S query 1 query 2 . . . query Q ``` 每个请求 $query$ $i$ $(1\leq i\leq q)$ 的形式: ``` spell L R ``` 或 ``` ask L R ```

输出格式

设 $K$ 为 $ask$ 类型的请求次数。打印 $K$ 行。 第 $i$ 行应该包含对 $ask$ 类型的第 $i$ 次请求的输出。 注意:$spell$ 类型的请求无需输出。

说明/提示

- $1\leq n, q\leq 5\times 10^5$ - $S$ 是长度为 $n$ 的字符串序列,由 `D` 和 `N` 组成。 - $1\leq L\leq R\leq n$ ,是用于 $spell$ 和 $ask$ 类型的查询范围。 - 至少有一个查询类型为 $ask$ 。 - $n$ 、 $q$ 、 $L$ 和 $R$ 是整数。