并查集
文章平均质量分 60
litble
Away From OI已久,一天天变菜中,博客平时不咋看,也没能力答疑和改错了,因此不会互动见谅orz
展开
-
bzoj3562 瞎搞+并查集+dfs
题目分析听说的做法是这样的: 1.离线处理询问,那么有些边就是始终没有被处理的,只看这些边,并查集缩点。 2.加上有被处理的边。 3.离线处理询问,dfs暴力搞答案。 嗯嗯,是比直接暴力时间复杂度不知道低到哪里去了,可是—— 极限数据还是过不了啊!!!! 还有那个“SHTSC 在变化过程中始终保持着一种特殊的性质:即不存在这样的原子序列 a1,a2,…,an(n>3)满足 a1 与 a2原创 2017-08-22 12:41:48 · 302 阅读 · 0 评论 -
codevs1299 并查集
题目分析我们用并查集维护这个东西:f[x]代表第x个水果及其右边还没有被切过的第一个水果。 然后就可以线性的做了,每次将l到r之间没有被切过的水果都切一下,切了水果后就更新其f[x]:f[x]=f[x+1],然后就可以轻松做出了! 注意如果切到了最右边的水果,f[x]就会变成0,要特判,否则会TLE。原创 2017-08-22 19:51:14 · 303 阅读 · 0 评论 -
codevs1074 洛谷2024 带权并查集
解题思路已知A吃B,B吃C,C吃A。 所有有关系的动物在一个并查集里,但是这个并查集不简单,它是一个带权的并查集! 那么这个权值是什么呢? 设A与B在同一个集里,A到根节点X的权值(模3)为DaD_a,B到根节点权值(模3)为DbD_b 如果Da=2D_a=2,则X吃A。 如果Da=1D_a=1,则A吃X。 如果Da=0D_a=0,则A与X为同一物种。 由此可以得到: 如果Da=Db原创 2017-08-15 20:46:12 · 483 阅读 · 0 评论 -
bzoj2303洛谷3631 异或推理+并查集
题目分析首先发现,如果我们把蓝色看作1,把红色看作0(不过红配蓝什么的真的丑….),那么对于每一个格子a(i,j),都有:a(i,j)^a(i+1,j)^a(i,j+1)^a(i+1,j+1)=1 那么只要第一列和第一行确定了如何染色,整个表格的染色就确定了。(这是显然的,因为一个2∗22*2的格子中有三个被染色了,剩下的格子颜色已定。) 现在我们把上面那个式子记作S(i,j),则我们对于每一个原创 2017-08-23 15:39:48 · 1201 阅读 · 0 评论 -
stl之rope大法好及可持久化并查集用法
rope大法好rope是c++的stl库中的一个叫做可持久化平衡树的结构,这个神奇的结构支持什么功能呢?看测试代码:#include#include#includeusing namespace std;using namespace __gnu_cxx;//使用rope要加这句#define LL long longropechar> tmp;char test[100原创 2017-08-24 11:05:52 · 1196 阅读 · 0 评论 -
当并查集遇上贪心【UVA1623,UVA11134,POJ1456】
导入你,是否在想到贪心策略却无法找到“比x大/小的第一个空位”而烦恼不已? 你,是否因为没有高效的算法而不断TLE? 你需要的,仅仅只是一个4行代码的并查集而已。 当并查集遇上贪心—— 一切事情似乎都那么美妙! 好吧以上一段废话只是说明并查集在解决“寻找比x大/小的第一个满足条件的位置,并占用这个位置”的贪心问题上很优秀而已UVA1623题目大意某城市有n个湖,一开始全是满的。接下来有m天原创 2017-10-20 20:22:00 · 395 阅读 · 0 评论 -
bzoj3080 Minimum Variance Spanning Tree 最小方差生成树
题目分析我们发现选出的生成树的边权和最多也只有2500,我们枚举选出的生成树边权和,于是就知道了平均数wˉ\bar{w}wˉ。然后将每条边的权值改为(wi−wˉ)2(w_i-\bar{w})^2(wi−wˉ)2,做最小生成树。这时候你可能会发问,为什么这样是对的,万一你在枚举了某个边权和后,出现了两种方案,一种边权和和我枚举的相同但是不优,另一种边权和不同但是更优,这样我们的做法就错了啊。...原创 2018-10-04 20:09:44 · 500 阅读 · 0 评论