bzoj2843 LCT 極地旅行社

2021-08-17 19:28:18 字數 2361 閱讀 7838

description

不久之前,mirko建立了乙個旅行社,名叫「極地之夢」。這家旅行社在北極附近購買了n座冰島,並且提供觀光服

務。當地最受歡迎的當然是帝企鵝了,這些小傢伙經常成群結隊的遊走在各個冰島之間。mirko的旅行社遭受一次

重大打擊,以至於觀光遊輪已經不划算了。旅行社將在冰島之間建造大橋,並用觀光巴士來運載遊客。mirko希望

開發乙個電腦程式來管理這些大橋的建造過程,以免有不可預料的錯誤發生。這些冰島從1到n標號。一開始時這些

島嶼沒有大橋連線,並且所有島上的帝企鵝數量都是知道的。每座島上的企鵝數量雖然會有所改變,但是始終在[0 ,

1000]之間。你的程式需要處理以下三種命令:

1.」bridge a b」——在a與b之間建立一座大橋(a與b是不同的島嶼)。由於經費限制,這項命令被接受,當且僅當 a與b不聯通。若這項命令被接受,你的程式需要輸出」yes」,之 後會建造這座大橋。否則,你的程式需要輸出」no」。

2.」penguins a x」——根據可靠訊息,島嶼a此時的帝企鵝數量變為x。這項命令只是用來提供資訊的,你的程式不 需要回應。

3.」excursion a b」——乙個旅行團希望從a出發到b。若a與b連通,你的程式需要輸出這個旅行團一路上所能看到的 帝企鵝數量(包括起點a與終點b),若不聯通,你的程式需要輸出」impossible」。

input

第一行乙個正整數n,表示冰島的數量。 第二行n個範圍[0, 1000]的整數,為每座島嶼初始的帝企鵝數量。

第三行乙個正整數m,表示命令的數量。接下來m行即命令,為題目描述所示。 1<=n<=30000,1<=m<=100000

output

對於每個bridge命令與excursion命令,輸出一行,為題目描述所示。

sample input

4 2 4 5 6

excursion 1 1

excursion 1 2

bridge 1 2

excursion 1 2

bridge 3 4

bridge 3 5

excursion 4 5

bridge 1 3

excursion 2 4

excursion 2 5

sample output

impossible

yesyes

yesyes

題解

lct裸題

維護一下以這個節點為根的子樹的權

不過這題應該還能用另一種方法

觀察到沒有刪除操作,我們可以考慮用樹上啟發式合併暴力連邊,並查集處理兩點連通情況,這樣複雜度和**量應該都會優秀許多

但是今天有點累就沒寫啟發式合併了

以後有時間再填了這個坑

#include

#include

#include

#include

#include

using namespace std;

struct node

}tr[31000];int n,m;

void reverse(int now)

void upd(int now)

void rotate(int

x,int w)

int tmp[31000];

void splay(int

x,int rt)

tmp[++s]=i;

while(s)

while(tr[x].f!=rt && (tr[tr[x].f].son[0]==x || tr[tr[x].f].son[1]==x))

else

}}void access(intx)}

void markroot(int

x)void link(int

x,int

y)int findroot(int

x)char ch[20];

int main()

scanf("%d",&m);

while(m--)

link(u,v);printf("yes\n");

}else

if(ch[1]=='p')

else

markroot(u);access(v);splay(v,0);

printf("%d\n",tr[tr[v].son[0]].sum+tr[v].c);}}

return

0;}

BZOJ 2843 極地旅行社 LCT

lct.include include include include define rep i n for int i 0 i n i define clr x c memset x c sizeof x using namespace std const int maxn 30000 5 con...

BZOJ2843 極地旅行社

題意 連邊,詢問權值和,單點修改權值 裸的不能再裸的lct模板題。話說我就貼了個剛寫完的板,改了下輸入,輸出,資料範圍都沒看,居然就a了。一點坑點都沒有,要不要這樣啊。include include include define n 200005 using namespace std int n,...

bzoj2843 極地旅行社

description 不久之前,mirko建立了乙個旅行社,名叫 極地之夢 這家旅行社在北極附近購買了n座冰島,並且提供觀光服務。當地最受歡迎的當然是帝企鵝了,這些小傢伙經常成群結隊的遊走在各個冰島之間。mirko的旅行社遭受一次重大打擊,以至於觀光遊輪已經不划算了。旅行社將在冰島之間建造大橋,並...