洛谷P1503 鬼子進村 平衡樹,STL

2022-04-30 09:21:15 字數 1255 閱讀 1005

題目傳送門

描述 縣城裡有n個用地道相連的房子,第i個只與第i-1和第i+1個相連。這是有m個訊息依次傳來

1、訊息為d x:鬼子將x號房子摧毀了,地道被堵上。

3、訊息為q x:有一名士兵被圍堵在x號房子中。

李雲龍收到資訊很緊張,他想知道每乙個被圍堵的士兵能夠到達的房子有幾個。

輸入格式:

第一行2個整數n,m(n,m<=50000)。

接下來m行,有如題目所說的三種資訊共m條。

輸出格式:

對於每乙個被圍堵的士兵,輸出該士兵能夠到達的房子數。

輸入樣例#1: 

7 9

d 3d 6

d 5q 4

q 5r

q 4r

q 4

輸出樣例#1: 

102

4

若士兵被圍堵在摧毀了的房子中,那只能等死了。。。。。。

分析:本來想用這題隨便搞個平衡樹玩一下,結果就變成了$vector$水分23333。

是的這題很裸,如果有房子被摧毀就丟進平衡樹里維護,修好了就從平衡樹中刪除,如果詢問就在平衡樹中找前驅後繼算差值就行了,注意邊界問題以及士兵所在房子被摧毀的情況就行了。

無比清(nan)新(kan)的$vector$實現平衡樹。  

code:

//

it is made by holselee on 28th sep 2018

p1503

#include#include

#include

#include

#include

using

namespace

std;

const

int n=5e4+7

;int

n,m,las,h[n];

bool

des[n];

vector

v;inline

intread()

while( ch>='

0' && ch<='9'

)

return flag ? -num : num;

}void print(int

x)inline

intget(int

x)int

main()

else

if( op[0]=='r'

) else

}return0;

}

洛谷 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其它的做法,我們可以發現,被困士兵能通過的房子組成的序列的兩個端點為被毀滅的兩個...

洛谷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 號房子中。李雲龍收...