UOJ_14_[UER #1]DZY Loves Graph_并查集 题面:http://uoj.ac/problem/14 考虑只有前两个操作怎么做. 每次删除一定是从后往前删,并且被删的边如果不是树边则没有影响,如果是树边也不存在边能替代. 直接删除这条边就可以. 于是用一个栈来保存现场,然后按秩合并的并查集维护就OK了. 现在有撤回操作,但根据上面对删边分析出的性质. 可以这样: 如果是插入一条边,然后撤回,相当于删边. 如果删边然后撤回,相当于什么也不做. 代码还是很好理解的. 代码:…
传送门 题意:给出一张$N$个点,最开始没有边的图,$M$次操作,操作为加入边(边权为当前的操作编号).删除前$K$大边.撤销前一次操作,每一次操作后询问最小生成树边权和.$N \leq 3 \times 10^5 , M \leq 5 \times 10^5$ 可以发现可以直接大力用并查集做,因为一条边只要合并了两个集合就能产生贡献. 关于删除可以将边的加入扔到栈里面,删除的时候不断弹栈即可. 撤销操作对于加边就是删掉了一条边,而对于删边就相当于什么都不做,直接做即可. 加入每一条边之后的答案…
题意 题目链接 Sol 神仙题啊Orzzzzzz 考场上的时候直接把树扔了对着式子想,想1h都没得到啥有用的结论. 然后cf正解居然是网络流??出给NOIP模拟赛T1???¥%--&((--%&(( 说一下非网络流解法吧. 首先题目中给出的\(g(i, p_i)\)我们可以认为是对于每个节点\(i\),分配一个节点\(p_i\),同时还有数量\(x_i\)的限制 同时题目中要求的是最小值最大,不难想到二分答案.但其实只要把边从小到大排序,依次考虑每条边能否成为答案就行了 用并查集维护节点之…
显然可以用可持久化并查集实现.考虑更简单的做法.如果没有撤销操作,用带撤销并查集暴力模拟即可,复杂度显然可以均摊.加上撤销操作,删除操作的复杂度不再能均摊,但注意到我们在删除时就可以知道他会不会被撤销,所以遇到一个要被撤销的删除操作时,直接求出去掉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\) 次操作.保证第 \…
传送门 题意简述: 要求支持以下操作: 在a与b之间连一条长度为i的边(i是操作编号):删除当前图中边权最大的k条边:表示撤销第 i−1次操作,保证第1次,第i−1 次不是撤回操作. 要求在每次操作后输出当前图的最小生成树边权和. 思路:由于边权为当前操作编号因此相当于边是单调加入的,也就是说我们可以直接上kruskalkruskalkruskal的合并方法. 关键在于怎么维护这几个操作. 加边操作:加入一条边. 删除操作:删掉最近加入的kkk条边. 撤回加边操作:删掉最近加入的一条边 撤回删除…
[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.他决定退而求…
题目链接: 传送门 DZY Loves Chemistry time limit per test:1 second     memory limit per test:256 megabytes Description DZY loves chemistry, and he enjoys mixing chemicals. DZY has n chemicals, and m pairs of them will react. He wants to pour these chemicals…
转载请注明出处:http://blog.csdn.net/u012860063?viewmode=contents 题目链接:http://codeforces.com/problemset/problem/445/B --------------------------------------------------------------------------------------------------------------------------------------------…
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…