洛谷 1503 鬼子進村 題解

2021-10-01 04:08:13 字數 970 閱讀 5597

部落格觀賞效果更佳

給定乙個長度為n

(<=5

e4

)n(<=5e4)

n(<=5

e4)的01

0101

序列,一開始都是1

11。支援三種操作:

修改某乙個位置為0

00撤銷上一次修改

詢問包含某個位置的最長的連續的1

11的個數。

m ul

tise

tmultiset

multis

et維護位置,二分得到左右,相減即珂。

左右邊界。左是 upp

erbo

und−

1upperbound - 1

upperb

ound

−1,右是 low

erbo

un

dlowerbound

lowerb

ound

。關於撤銷的操作:用乙個棧維護刪除的位置,每一次撤銷就是取棧頂。(我是用vec

to

rvector

vector

實現的棧,因為我不是很會用sta

ck

stack

stac

k,不要在意)

#include

using

namespace std;

namespace flandre_scarlet

int n,m;

voidr1(

int&x)

void

input_soviet()

if(o[0]

=='r')}

if(o[0]

=='q')}

}#define flan void

flan ismywife()

}int

main()

洛谷P1503 鬼子進村 題解

原題 題目描述 縣城裡有 n nn 個用地道相連的房子,第 i ii 個只與第 i 1 i 1i 1 和第 i 1 i 1i 1 個相連。這時有 m mm 個訊息依次傳來 若訊息為 d x 鬼子將 x xx 號房子摧毀了,地道被堵上。若訊息為 q x 有一名士兵被圍堵在 x xx 號房子中。李雲龍收...

洛谷 P1503 鬼子進村

描述 縣城裡有n個用地道相連的房子,第i個只與第i 1和第i 1個相連。這是有m個訊息依次傳來 1 訊息為d x 鬼子將x號房子摧毀了,地道被堵上。3 訊息為q x 有一名士兵被圍堵在x號房子中。李雲龍收到資訊很緊張,他想知道每乙個被圍堵的士兵能夠到達的房子有幾個。輸入格式 第一行2個整數n,m n...

洛谷 P1503 鬼子進村 Treap

原題位址 題意就不解釋了吧。看到這道題,一開始yy把所有點加進treap裡面,然後完全跟著操作走,應該是可做的。在treap裡面找連續的一段應該很簡單,只要有一定 能力都行 吧。可不幸的因為本人太弱,不想寫,就不得不yy其它的做法,我們可以發現,被困士兵能通過的房子組成的序列的兩個端點為被毀滅的兩個...