極地旅行社 LCT

2021-08-29 18:48:33 字數 1912 閱讀 6673

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

當地最受歡迎的當然是帝企鵝了,這些小傢伙經常成群結隊的遊走在各個冰島之間。mirko的旅行社遭受一次重大打擊,以至於觀光遊輪已經不划算了。旅行社將在冰島之間建造大橋,並用觀光巴士來運載遊客。

mirko希望開發乙個電腦程式來管理這些大橋的建造過程,以免有不可預料的錯誤發生。這些冰島從1到n標號。一開始時這些島嶼沒有大橋連線,並且所有島上的帝企鵝數量都是知道的。每座島上的企鵝數量雖然會有所改變,但是始終在[0, 1000]之間。你的程式需要處理以下三種命令:

bridge a b:詢問結點a與結點b是否連通。如果是則輸出「no」。否則輸出「yes」,並且在結點a和結點b之間連一條無向邊。

penguins a x:將結點a對應的權值wa修改為x。

excursion a b:如果結點a和結點b不連通,則輸出「impossible」。否則輸出結點a到結點b的路徑上的點對應的權值的和。

輸入格式:

第一行包含乙個整數n(1<=n<=30000),表示節點的數目。

第二行包含n個整數,第i個整數表示第i個節點初始時對應的權值。

第三行包含乙個整數q(1<=n<=300000),表示操作的數目。

以下q行,每行包含乙個操作,操作的類別見題目描述。

任意時刻每個節點對應的權值都是1到1000的整數。

輸出格式:

輸出所有bridge操作和excursion操作對應的輸出,每個一行。

輸入樣例#1:

5

4 2 4 5 6

10excursion 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

輸出樣例#1:

4

impossible

yes6

yesyes

15yes

1516

資料範圍:1<=n<=30000, 1<=q<=300000, 0<=wi<=1000。

題意:link,單點修改,路徑查詢

#include#define n 30005

#define lc t[x].ch[0]

#define rc t[x].ch[1]

using namespace std;

int n,q,a[n]; char s[20];

struct nodet[n];

int read()

while(isdigit(ch))cnt=cnt*10+(ch-'0'),ch=getchar();

return cnt*f;

}bool isroot(int x)

void pushup(int x)

void pushdown(int x)

}void pushpath(int x)

void rotate(int x)

void splay(int x)

}void access(int x)

void makeroot(int x)

int findroot(int x)

void link(int x,int y)

int main()

else printf("impossible\n");

} if(s[0]=='p')

if(s[0]=='b')

}}

bzoj2843 LCT 極地旅行社

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

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,...