泡泡家中的小夢境

發布時間: Oct. 2, 2021, 2:54 p.m.   最後更新時間: Sept. 15, 2023, 8:29 p.m.   時間限制: 1000ms   記憶體限制: 128M

 吃完麵包喝完下午茶就是要睡覺~不知是不是因為在泡泡家,你做了個奇怪的夢:

「都跟班上同學相處一年了,不如我們來給他們配對吧!」這麼想的你,於是當起了班上的月老。


你事先調查好了班上同學的心裡性別(因為竹中的生理性別都男的,當然要調查心理R),為了簡化問題,假設心理性別只有男和女。那我們可以定義一個「配對」是由一個男性與女性組成的,並且滿足以下規則:

1.男性的座號必須小於女的座號

2.一個人出現在最多一個配對

因為座位是照座號排的,所以連續的座號的人都會坐在一起,感情應該會比較好。如果有辦法讓區間裡面每一個人都剛好與區間中另一個人配對,那會有多好!(更正式來說,區間$[l, r]$是一個「完美匹配」若且唯若存在一種配對方式使得區間中每一個人都剛好在某一個「配對」裡面,且每一個「配對」中那兩個人都是在區間$[l, r]$裡面。)

 

你想要把一些區間是否為「完美匹配」給記錄下來。然而,面對著青少年對於性的種種不安,可能中途會出現某人的心裡性別突然變了(男變女,女變男)。

 

因為班級人數實在太多了,所以你必須要寫一個程式出來計算這件事。這樣才能讓班上有更多班對產生<3。

第一行有一個數字$n(n\leq2\times10^5)$,代表班上有$n$個人
第二行一個長度為$n$且只包含$'M','F'$的字串($'M'$代表男生,$'F'$代表女生)的字串$s$,$s$的第$i$個字母代表座號為$i$的人的心裡性別。
第三行有一個數字$q(q\leq2\times10^5)$,代表接下來有幾筆操作/詢問。
接下來$q$行代表每一筆的操作/詢問,只會有兩種可能:
$1$ $p (1\leq p\leq n)$
$2$ $l$ $r (1\leq l\leq r\leq n)$
分別代表第$i$個人突然轉性了,或者你想知道區間$[l,r]$是否為「完美匹配」。

對於每筆詢問,如果是完美匹配輸出"YES",否則輸出"NO"(不含")。

複製範例
6
MMFFMM
4
2 1 4
2 1 6
1 6
2 1 6
YES
NO
YES

其實我不知道這題是不是Greedy  於是乎 交給各位電神了 (逃~

--Noter

模擬

竹中軟研35th第三次競賽(社內賽)