问题可以简化成, 最大能取到多少,使得前 个圆不能使左边界和右边界联通。 并查集维护圆与圆、圆与左右边界的联通性即可。 #include<bits/stdc++.h> using namespace std; #define N 505 typedef double db; const db eps ...
分类:
其他好文 时间:
2020-04-19 22:18:05
阅读次数:
66
题目链接: "P1892 [BOI2003]团伙" 最近懒死了。 和 "P1525 关押罪犯" 和相似,也要有一个记录敌人信息的数组。 这里对这个数组有个好些的理解:记录敌人集合中的 任意一个 ,由于并查集的性质,其他的也随之确定。 注意的是,在两个团伙合并时,先前两个团伙已确定的敌人不会因此成为朋 ...
分类:
其他好文 时间:
2020-04-19 15:01:42
阅读次数:
55
这是一道贪心题目,贪心的思路就是将代价从小到大排序,然后不断选取最小的代价(需要满足此关系的两朵云彩没有联通,否则直接跳过选下一个)。 满足此关系的两朵云彩是否联通可以用并查集来处理。 代码: c: #include<stdio.h> struct node{ int a,b,p;//a,b连接的云 ...
分类:
其他好文 时间:
2020-04-19 10:44:20
阅读次数:
49
算法 01背包+并查集 思路 既然这样,那这道题是否可以转换为01背包呢? 答案很明显是可以的。可以利用并查集,将这m组配对购买的商品划到一个集合里,这样就可以确定买了其中一个就得买另一个。 最后就是01背包啦! 代码 #include <cstdio> #include <iostream> #i ...
分类:
其他好文 时间:
2020-04-18 20:08:40
阅读次数:
60
A.小希的迷宫(并查集) 题意: 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间 ...
分类:
其他好文 时间:
2020-04-17 23:23:03
阅读次数:
66
luogu题目传送门! 懒得找最小生成树模板了,就把这题当板子吧。 最小生成树,就是指对于一张图,我们将图转换成一棵树,连通的,同时让所有的边尽可能的小(废话)。 最小生成树一般都采用Kruskal算法,期间需要用到并查集。大体思路如下: 先将所有边从小到大排序,对所有的节点维护并查集 f。 然后依 ...
分类:
其他好文 时间:
2020-04-17 12:28:35
阅读次数:
70
1 //最小代价生成树 2 //prim算法(稠密图):从与这棵树相连的边中选择最短的边,并将这条边及其所连顶点接入当前树中 3 void Prim(MGraph g,int v0,int &sum) { 4 int lowcost[maxsize],visit[maxsize],v;//lowco ...
分类:
其他好文 时间:
2020-04-14 14:07:16
阅读次数:
105
【$Description$】https://www.luogu.com.cn/problem/P2024 一道带权并查集的题 这道题很重要的一点就是: 有$3$种不同的动物$A,B,C$。且$A$吃$B$,$B$吃$C$,$C$吃$A$ 由此我们可以得到:对于一个动物,有它的同类、天敌、猎物。 按 ...
分类:
其他好文 时间:
2020-04-14 10:35:52
阅读次数:
59
本题可以套用和 [LeetCode] 200. Number of Islands 岛屿的数量 与 [LeetCode 695] Max Area of Island 岛的最大面积一样的dfs模版,不同的是DFS的遍历路径不同,本题 采用的是类似十字遍历方式,具体见如下代码,本题同样可以使用BFS和 ...
分类:
其他好文 时间:
2020-04-13 00:57:47
阅读次数:
63
这道题目思维量还是挺大的,因为这道题也是维护集合关系,所以我们想到用并查集去维护。 我们应该想到的是,用map映射一下位置,因为原来的数据比较大,不宜维护并查集关系,并且设计两个原点 0 和n+1,表示ab集合,这招是常见手段,因为这两个点是特殊的。之前有到异或并查集也是设计一个另外的原点 又因为x ...
分类:
其他好文 时间:
2020-04-11 20:58:20
阅读次数:
68