LG1503 鬼子進村 平衡樹

2021-08-07 04:59:15 字數 492 閱讀 2923

考慮維護每個被摧毀的點,摧毀時入棧,修復時彈出棧並在平衡樹中刪除之。對於詢問,求前驅後繼之差即可,注意詢問點為已存在的特判。

#include

#include

using

namespace

std;

int fa[50005]={},ch[50005][2]={},k[50005]={},ind=0,root=0,m,n;

int search(int v)

void rotate(int p)

void splay(int x)

void insert(int v)for(t=l;ch[t][1];t=ch[t][1]);splay(t);ch[t][1]=r;fa[r]=t;}

int prefix(int p)

int suffix(int p)

int main()}}

return

0;}

luogu1503 鬼子進村

題目鏈結 將哪些村莊已經被摧毀了放到treap裡。查詢的時候如果當前村莊已經被毀了,那麼就可以直接輸出0.不然就輸出這個村莊的後繼 前驅 1。原因顯然 include include include include include include define ls tr cur ch 0 defi...

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

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

洛谷 1503 鬼子進村 題解

部落格觀賞效果更佳 給定乙個長度為n 5 e4 n 5e4 n 5 e4 的01 0101 序列,一開始都是1 11。支援三種操作 修改某乙個位置為0 00撤銷上一次修改 詢問包含某個位置的最長的連續的1 11的個數。m ul tise tmultiset multis et維護位置,二分得到左右,...