a801: 斑馬線
標籤 : bitwise binary search
通過比率 : 2人/3人 ( 67% ) [非即時]
評分方式:
Tolerant

最近更新 : 2023-01-19 20:51

內容

在暑假結束的隔天,$frankie$又像高一那樣,走在滿是學生的路上。

同時在這天,$frankie$發現了校門口的斑馬線,跟以往的有些不同。

 

今天的斑馬線,由左至右,共有$N$格的長度,而每一格都分成有漆油漆的白色,跟沒漆油漆的黑色。

但有些格子相鄰的格子跟他是同個顏色,所以$frankie$覺得真的有點醜,

於是他決定在晚上沒人在的時候,重新把斑馬線漆一次。

 

深夜,$frankie$獨自一人到了校門口,他拿著工具準備把斑馬線全面更新。

但因為晚上太黑了,他完全看不到路面,也看不到自己的手,

所以他決定只對斑馬線做$3$種簡單的操作。

分別如下:

$1\ l\ r\ :$把$[l, r)$此區間的斑馬線都漆成白的

$2\ l\ r\ :$把$[l, r)$此區間的斑馬線的漆刮掉,變成黑的

$3\ l\ r\ :$把$[l, r)$此區間的斑馬線,針對每一格,黑的就漆成白的,白的就把漆刮掉

 

由於時間有限,$frankie$只做了$M$個操作。

但這時$frankie$發現,晚上真的有夠暗,

他也沒有記住他做了那些操作,於是他完全不知道現在的路面是怎樣。

 

這時你走了過去,決定幫助$frankie$重漆斑馬線,

因為你有一種超強的夜視能力,而且你也覺得校門斑馬線有夠醜。

 

$frankie$會問$Q$次問題,

並且問題也有$3$種,

分別如下:

$4\ l\ r\ :$問$[l, r)$此區間的斑馬線中最左邊的白色塊是哪格,沒有這種東西就輸出$-1$

$5\ l\ r\ :$問$[l, r)$此區間的斑馬線中最右邊的白色塊是哪格,沒有這種東西就輸出$-1$

$6\ l\ r\ :$問$[l, r)$此區間的斑馬線中有幾格白色塊

 

為了讓整個斑馬線看起來更好看,同時確保不會有更多人被殘害雙眼,

請幫幫$frankie$回答他問的問題,讓世界更加美好。

輸入說明

第一行,輸入一數$T$,表示有$T$比測資。

第二行,輸入三數$N,\ M,\ Q$,代表 斑馬線格數,操作次數,詢問次數。

第三行,輸入$a_1 \sim a_N$,$``b"$表示此格為黑,$``w"$表示此格為白。

後$M$行,每行輸入上述$3$種操作之一。

後$Q$行,每行輸入上述$3$種詢問之一,並進行輸出答案。

輸出說明

輸出$Q$行$frankie$所問問題之答案

範例輸入
1
5 3 3
b w b b w
1 2 5
2 0 3
3 0 5
4 1 4
5 3 5
6 0 5
範例輸出
1
-1
3
測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (50%): 1.5s , <1M
公開 測資點#1 (30%): 1.5s , <10M
公開 測資點#2 (20%): 1.5s , >50M
提示 :

顯然最左邊那格是第$0$格。

本題主角$frankie$雖說視力很好,但在黑暗中卻看不到自己。

$ 50\% $測資:$0 \leq l \leq r \leq N \leq 20,\ 1 \leq M, Q \leq 10^2$

$ 80\% $測資:$0 \leq l \leq r \leq N \leq 40,\ 1 \leq M, Q \leq 10^3$

$ 100\% $測資:$0 \leq l \leq r \leq N \leq 60,\ 1 \leq M, Q \leq 10^4,\ T = 950$

 

抱歉我卡常數

 

$array\ \to \ TLE$

$bitwise + binary\ search\ \to \ AC$

標籤:
bitwise binary search
出處:
[管理者:
chrislaiisme (卍乂_第11屆ㄟ進階助教 a.k.a. ...)
]


編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」