uoj problem 14 DZY Loves Graph】的更多相关文章

题目: 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 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$一定不会比…
[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.他决定退而求…
http://uoj.ac/problem/14 题解很好的~ 不带路径压缩的并查集能保留树的原本形态. 按秩合并并查集可以不用路径压缩,但是因为此题要删除,如果把深度当为秩的话不好更新秩的值,所以把子树大小当为秩. 合并直接合并,删除直接删除,每条边只会被添加进树一次,至多被删除一次. 离线特殊考虑一下return的情况就可以了QwQ #include<cstdio> #include<cstring> #include<algorithm> using namesp…
http://uoj.ac/problem/14 由于加入的边权递增,可以直接运行kruskal并支持撤销,但这样如果反复批量删边和撤销,时间复杂度会退化,因此需要对删边操作加上延时处理,只有在删边后下一个操作不是撤销时才执行删边.由于有撤销,并查集需要按秩合并且不路径压缩. #include<bits/stdc++.h> typedef long long i64; ; int _(){ int x; scanf("%d",&x); return x; } int…
A. DZY Loves Hash time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output DZY has a hash table with p buckets, numbered from 0 to p - 1. He wants to insert n numbers, in the order they are given, i…
传送门 题意简述: 要求支持以下操作: 在a与b之间连一条长度为i的边(i是操作编号):删除当前图中边权最大的k条边:表示撤销第 i−1次操作,保证第1次,第i−1 次不是撤回操作. 要求在每次操作后输出当前图的最小生成树边权和. 思路:由于边权为当前操作编号因此相当于边是单调加入的,也就是说我们可以直接上kruskalkruskalkruskal的合并方法. 关键在于怎么维护这几个操作. 加边操作:加入一条边. 删除操作:删掉最近加入的kkk条边. 撤回加边操作:删掉最近加入的一条边 撤回删除…
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\) 个点,现在对这 \(n\) 个点进行了 \(m\) 次操作,对于第 \(i\) 个操作(从 \(1\) 开始编号)有可能的三种情况: \(Add\) a b: 表示在 \(a\) 与$ b$ 之间连了一条长度为 \(i\) 的边(注意, i是操作编号).保证 \(1≤a,b≤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…