并查集
Deep_Kevin
我太弱了
展开
-
[USACO18FEB]New Barns P,洛谷P4271,LCT维护直径
正题 比较蠢,没想到. 其实给两个联通块连一条边也是可以的,就是将两个联通块的直径端点两两求一次距离,求距离可以用LCT来维护点权,然后split一下-1就是距离了.再用一个带权并查集来维护两个直径端点就可以了. #include<bits/stdc++.h> using namespace std; const int N=100010; struct node{ int son[2],fa,tot; bool swp; }s[N]; int a[N],b...原创 2020-09-01 21:58:41 · 267 阅读 · 0 评论 -
[WC2005]双面棋盘,洛谷P4121,线段树分治+可撤销并查集
正题 这题主要是来练手的,因为没写过可撤销的并查集,大概就是把每一个格子看成一个点,然后格子直接的边有很多的出现区间,把这些出现区间和对应的颜色打到线段树上,然后用可撤销的并查集来维护就可以了. #include<bits/stdc++.h> #define ls now<<1 #define rs now<<1|1 using namespace std; #define pib pair<int,bool> const int N=20...原创 2020-09-01 21:49:14 · 207 阅读 · 0 评论