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行為它們的權值。輸...