COJ 0979 WZJ的資料結構(負二十一)

2022-05-23 02:45:07 字數 2184 閱讀 1116

wzj的資料結構(負二十一)

難度級別:c; 執行時間限制:5000ms; 執行空間限制:262144kb; **長度限制:2000000b

試題描述

請你實現乙個資料結構,完成這樣的功能:

給你乙個n個點的圖,初始狀態無邊。

每次加入一條雙向邊(u,v,w),若加入後沒有構成一棵生成樹,輸出「not yet」,否則輸出當前最小生成樹的權值。

輸入第一行兩個正整數n,m。表示有n個點m個操作。

接下來m行每行三個正整數u,v,w。

輸出每次加入一條雙向邊(u,v,w),若加入後沒有構成一棵生成樹,輸出「not yet」,否則輸出當前最小生成樹的權值。

輸入示例

4 61 2 10

2 3 10

3 4 10

2 2 1

1 3 2

2 4 3

輸出示例

not yet

not yet

3030

2215

其他說明

1<=n<=100000

1<=m<=500000

1<=ui,vi<=n

1<=wi<=1000

題解:這才是真正的動態mst呀

1 #include2 #include3 #include4 #include5 #include6 #include7

#define pau putchar(' ')

8#define ent putchar('\n')

9#define ch for(int d=0;d<=1;d++) if(ch[d])

10using

namespace

std;

11const

int maxn=300000+10,maxm=1500000+10,inf=-1u>>1;12

struct

node

15void revt()

16void update()return

;}17

void down()rev=false;}return

;}18 }lct[maxn+maxm],*nodecnt;

19int parent(node*x,node*&y)

20void rotate(node*x)

27void pushdown(node*x) while(top--) s[top]->down();return;33

}34 node*splay(node*x)

39if(d1==d2) rotate(y),rotate(x);

40else

rotate(x),rotate(x);

41 } x->update();return

x;42

}43 node*access(node*x)

48void makeroot(int x)

49void link(int x,int y)

50void cut(int x,int

y)54 node*findtop(int

x)57 node*query(int x,int

y)60

intn,m;

61 inline int

read()

64while(isdigit(ch))x=10*x+ch-'

0',ch=getchar();

65return x*=sig;66}

67 inline void write(int

x)if(x<0)putchar('

-'),x=-x;

69int len=0,buf[15];while(x)buf[len++]=x%10,x/=10;70

for(int i=len-1;i>=0;i--)putchar(buf[i]+'

0');return;71

}72ints[maxm],t[maxm];

73void

init()else86}

87}88if(cnt==1

) write(ans),ent;

89else puts("

not yet");

90}

91return;92

}93void

work()

96void

print()

99int main()

COJ1013 WZJ的資料結構(十三)

這道題有這樣乙個解法 首先把邊依次加到圖中,若當前這條邊與圖中的邊形成了環,那麼把這個環中最早加進來的邊彈出去 並將每條邊把哪條邊彈了出去記錄下來 ntr i j,特別地,要是沒有彈出邊,ntr i 0 這個顯然是可以用lct來弄的對吧。然後對於每個詢問,我們的答案就是對l r中ntr小於l的邊求和...

COJ0985 WZJ的資料結構(負十五)

coj0985 wzj的資料結構 負十五 試題描述 chx有乙個問題想問問大家。給你乙個長度為n的數列a,請你找到兩個位置l,r,使得a l a l 1 a r 中沒有重複的數,輸出r l 1的最大值。以上是附中聯賽加試的一道題。wzj覺得這道題太水了,改了改題目 wzj有乙個問題想問問大家。給你乙...

COJ0989 WZJ的資料結構(負十一)

coj0989 wzj的資料結構 負十一 試題描述 給出以下定義 1.若子串行 l,r 的極差 最大值 最小值 m,則子串行 l,r 為乙個均勻序列。2.均勻序列 l,r 的權值為sum l,r 即序列的元素和。現在給你乙個長度為n的整數序列a,請你求出權值前k大的均勻序列,輸出k行為它們的權值。輸...