UOJ14 DZY Loves Graph】的更多相关文章

DZY开始有 nn 个点,现在他对这 nn 个点进行了 mm 次操作,对于第 ii 个操作(从 11 开始编号)有可能的三种情况: Add a b: 表示在 aa 与 bb 之间连了一条长度为 ii 的边(注意,ii是操作编号).保证 1≤a,b≤n1≤a,b≤n. Delete k: 表示删除了当前图中边权最大的k条边.保证 kk 一定不会比当前图中边的条数多. Return: 表示撤销第 i−1i−1 次操作.保证第 11 次操作不是 Return 且第 i−1i−1 次不是 Return…
传送门 题意:给出一张$N$个点,最开始没有边的图,$M$次操作,操作为加入边(边权为当前的操作编号).删除前$K$大边.撤销前一次操作,每一次操作后询问最小生成树边权和.$N \leq 3 \times 10^5 , M \leq 5 \times 10^5$ 可以发现可以直接大力用并查集做,因为一条边只要合并了两个集合就能产生贡献. 关于删除可以将边的加入扔到栈里面,删除的时候不断弹栈即可. 撤销操作对于加边就是删掉了一条边,而对于删边就相当于什么都不做,直接做即可. 加入每一条边之后的答案…
[UOJ#12][UER #1]猜数 试题描述 这一天,小Y.小D.小C正在愉快地玩耍. 小Y是个数学家,他一拍脑袋冒出了一个神奇的完全平方数 n. 小D是个机灵鬼,很快从小Y嘴里套出了 n的值.然后在脑内把 n写成了 a×b的形式.其中 a,b 都是正整数. 小C是个八卦狂,他发现小D从小Y那里获知了神奇的东西,于是死缠烂打追问小D.最后小D说道:“我可以告诉你正整数 g和 l的值,我保证 ab=gl=n且 a,b都是 g 的倍数.但是 a,b 我可不能告诉你.” 这可急坏了小C.他决定退而求…
学长小清新题表之UOJ 14.DZY Loves Graph 题目描述 \(DZY\)开始有 \(n\) 个点,现在他对这 \(n\) 个点进行了 \(m\) 次操作,对于第 \(i\) 个操作(从 \(1\)开始编号)有可能的三种情况: \(Add\ a\ b:\) 表示在 \(a\) 与 \(b\) 之间连了一条长度为 \(i\)的边(注意,\(i\)是操作编号).保证 \(1≤a,b≤n\). \(Delete\ k:\) 表示删除了当前图中边权最大的\(k\)条边.保证$ k$一定不会比…
显然可以用可持久化并查集实现.考虑更简单的做法.如果没有撤销操作,用带撤销并查集暴力模拟即可,复杂度显然可以均摊.加上撤销操作,删除操作的复杂度不再能均摊,但注意到我们在删除时就可以知道他会不会被撤销,所以遇到一个要被撤销的删除操作时,直接求出去掉k条边后的MST即可. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #…
题目描述 开始有 \(n\) 个点,现在对这 \(n\) 个点进行了 \(m\) 次操作,对于第 \(i\) 个操作(从 \(1\) 开始编号)有可能的三种情况: \(Add\) a b: 表示在 \(a\) 与$ b$ 之间连了一条长度为 \(i\) 的边(注意, i是操作编号).保证 \(1≤a,b≤n\). \(Delete\) k: 表示删除了当前图中边权最大的\(k\)条边.保证 k 一定不会比当前图中边的条数多. \(Return\): 表示撤销第 \(i−1\) 次操作.保证第 \…
题目: DZY开始有 \(n\) 个点,现在他对这 \(n\) 个点进行了 \(m\) 次操作,对于第 \(i\) 个操作(从 \(1\) 开始编号)有可能的三种情况: Add a b: 表示在 \(a\) 与 \(b\) 之间连了一条长度为 \(i\) 的边(注意,\(i\)是操作编号).保证 \(1 \leq a, b \leq n\). Delete k: 表示删除了当前图中边权最大的k条边.保证 \(k\) 一定不会比当前图中边的条数多. Return: 表示撤销第 \(i-1\) 次操…
UOJ小清新题表 题目内容 UOJ链接 DZY开始有\(n\)个点,现在他对这\(n\)个点进行了\(m\)次操作,对于第\(i\)个操作(从\(1\)开始编号)有可能的三种情况: Add a b: 表示在\(a\)与\(b\)之间连了一条长度为\(i\)的边(注意,\(i\)是操作编号).保证\(1≤a,b≤n\). Delete k: 表示删除了当前图中边权最大的k条边.保证k一定不会比当前图中边的条数多. Return: 表示撤销第$ i−1$次操作.保证第\(1\)次操作不是Return…
http://uoj.ac/problem/14 题解很好的~ 不带路径压缩的并查集能保留树的原本形态. 按秩合并并查集可以不用路径压缩,但是因为此题要删除,如果把深度当为秩的话不好更新秩的值,所以把子树大小当为秩. 合并直接合并,删除直接删除,每条边只会被添加进树一次,至多被删除一次. 离线特殊考虑一下return的情况就可以了QwQ #include<cstdio> #include<cstring> #include<algorithm> using namesp…
题解: 正解是可持久化并查集 但这个显然是lct可以维护的 但这常数是个问题啊??? #include <bits/stdc++.h> using namespace std; struct re{ int a,b,c; }; const int N=5e5; int fa[N],ls[N],rs[N],v[N]; int cnt,last,last1,last2,n,m,ans; bool rev[N]; deque<re> q1,q2; void down(int x) { i…