并查集
bluelanzhan
这个作者很懒,什么都没留下…
展开
-
一道时间分治的题
Graph 输入文件:graph.in 输出文件:graph.out 时间限制:1 second 空间限制:512 MB 题目描述 现在你要维护一张无向的简单图。你要执行如下操作: 0:加入一条边。保证它不存在。 1:删除一条边。保证它存在。 2:查询两个点是否联通。 输入格式 输入的第一行是两个正整数n,m 。 接下来 行,每一行三个整数opt,x,y 。其中opt 表示操作编号。 输出格式 对...原创 2018-10-23 09:36:01 · 429 阅读 · 0 评论 -
water(最小生成树)
这道题有两个方法。 1.最小生成树。(我改的此法,此法是正解) 其实每个块所在位置的积水高度就是从这个块到矩形外的所有路径中最大值的最小值。 对于一个块我们把它向四周的块连边,每条边的权值为两端点点权的最大值。(因为所有路径中最大值才有用) 如果这个块在矩形的边缘,那么它向矩形外(虚节点)连边,边权为max(这块的高度,0) 我们建一棵最小生成树(即是最大值的最小值),从虚节点开...原创 2018-10-26 18:48:07 · 327 阅读 · 0 评论 -
便(带权并查集)( AT2033 マス目と整数 / Grid and Integers)
【输出格式】 T行.第i行是第i组数据的答案.有合法方案时输出一行Yes,没有时输出一行No. 6 2 2 3 1 1 0 1 2 10 2 1 20 2 3 5 1 1 0 1 2 10 1 3 20 2 1 30 2 3 40 2 2 3 1 1 20 1 2 10 2 1 0 3 3 4 1 1 0 1 3 10 3 1 10 3 3 20 2 2 4 1 1 0 1 2 10 2 1...原创 2018-11-01 23:58:54 · 324 阅读 · 0 评论 -
P3940 分组(贪心+并查集)
因为字典序最小。 组越少 + 越前面的组size越小! 考虑数据范围131072!好巧啊!131072 + 131072 = 262144 = 512 * 512.也就是说任意两种颜色之和小于等于512的平方。。。。 那么我们对于一个元素i可以从512倒着枚举z(这样可以剪掉平方比i小的,省时),表示它和另一个元素j之和是z的平方。 对于k == 1; 因为组内元素,必须有序(每个小组都...原创 2018-11-02 22:02:12 · 377 阅读 · 0 评论 -
星际旅行(思维很好的欧拉路)
把每条边拆成两条。欧拉(回)路,只有0或2两个奇点。因为2条边经过一次,m-2条边经过两次,可以考虑删除两条边,使剩下的图有0或2两个奇点。所以这两条边要么是任意两个自环,要么是有一个公共端点的两条边,要么是一个自环和任意一条边。 我们要判断,整个图联不联通,因为要经过m条边。然而我们判断所有边联通的点联不联通,不是判断所有点联不联通。如下图,所有点不联通,但是能找到航线。 #inc...原创 2018-11-07 14:58:32 · 420 阅读 · 0 评论 -
cross(idy002的神奇并查集)
纵坐标相同的点连边,横坐标相同点点连边。 不在同一个联通块的点互不影响,所以可以用乘法原理把每一块的答案乘起来。 对于一块,有多少个不同的x就有多少条与y轴平行的直线,记为x条;有多少个不同的y就有多少条与x轴平行的直线,记为y条。所以总直线数是x+y条。每条直线可以选或不选,所以每个联通块的答案为2^(x+y).但是对于边数比点数小的联通块来说(边数=点数-1),x+y = 点数+1,不...原创 2018-11-07 21:05:49 · 219 阅读 · 0 评论 -
P3402 【模板】可持久化并查集
其实看看代码自己就可以懂。 注意: 1.并查集不压缩路径,压缩了就回不到压缩之前的状态了。 2.并查集合并时,小的往大的合并,启发式合并。 3.对于第i步(不管什么操作)操作都要把root[i] = roo[i-1]//我在合并时,如果两个祖先一样就直接continue了,没把root[i]赋值为root[i-1],一直没看出来,拖了一个多月才过。。。。 #include<iost...原创 2018-11-08 20:26:37 · 259 阅读 · 0 评论