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
5 4 2 4 5 6
10 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
4 impossible
yes
6 yes
yes
15 yes
15 16
裸的lct 直接模擬即可 維護下和即可
#include
#include
#define n 33000
using namespace std;
inline int
read()
while(ch<='9'&&ch>='0') x=x
*10+ch-'0',ch=getchar();
return
x*f;
}int fa1[n],fa[n],rev[n],sum[n],v[n],top,q[n],c[n][2],m,n;
char s[14];
inline int find(int
x)inline bool isroot(int
x)inline void pushdown(int
x)inline void update(int
x)inline void rotate(int
x)inline void splay(int
x)rotate(x);
}}inline void access(int
x)inline void makeroot(int
x)int main()
if (s[0]=='p') splay(x),v[x]=y,update(x);
if (s[0]=='b')else puts("no");}}
return
0;}
BZOJ2843 極地旅行社
題意 連邊,詢問權值和,單點修改權值 裸的不能再裸的lct模板題。話說我就貼了個剛寫完的板,改了下輸入,輸出,資料範圍都沒看,居然就a了。一點坑點都沒有,要不要這樣啊。include include include define n 200005 using namespace std int n,...
bzoj2843 極地旅行社
description 不久之前,mirko建立了乙個旅行社,名叫 極地之夢 這家旅行社在北極附近購買了n座冰島,並且提供觀光服務。當地最受歡迎的當然是帝企鵝了,這些小傢伙經常成群結隊的遊走在各個冰島之間。mirko的旅行社遭受一次重大打擊,以至於觀光遊輪已經不划算了。旅行社將在冰島之間建造大橋,並...
bzoj2843 極地旅行社
description 不久之前,mirko建立了乙個旅行社,名叫 極地之夢 這家旅行社在北極附近購買了n座冰島,並且提供觀光服 務。當地最受歡迎的當然是帝企鵝了,這些小傢伙經常成群結隊的遊走在各個冰島之間。mirko的旅行社遭受一次 重大打擊,以至於觀光遊輪已經不划算了。旅行社將在冰島之間建造大橋...