![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并查集
Larry1118
这个作者很懒,什么都没留下…
展开
-
【NOIP2010提高组】关押罪犯
本题稍难, 排序+并查集即可。 #include<cstdio> #include<cstring> using namespace std; struct pid { int x,y,z; }a[100001]; int f[20001],l[20001][1234]; bool by[20001]; int ans=2147483647,n,m; void qsort...原创 2019-01-17 14:23:36 · 228 阅读 · 0 评论 -
【HNOI2016模拟4.10】线性代数与逻辑
这题废了。。。 首先,题意一定要明白。 我们要构造一个y数组(一维,题目的) 然后再构造出我们要的X矩阵。(满足Xi,j=yi^yj) 由于题目要 也就是对于每一个位置(i,j),要使X[i,j]|(!A[i,j]) 也就是说,如果A[i,j]=1,那么X[i,j]一定要等于1,否则随便 然后,我们要让 也就是说,y中0的个数和1的个数差最小。 答案就是 2y中0的个数y中1的个数(也就是n-...原创 2019-01-17 22:09:04 · 158 阅读 · 0 评论 -
【NOIP2012模拟8.10】生成输入数据
这题可以很容易就想到, 由于我们要将最小生成树变成原来的完全图,而且要使边权和最小。 那么:如果我们在x和y连一条边,那么这条边的长度变为↙ 那个最小生成树中x到y的路径上最大的边权+1。 这样子暴力O(n2),只能拿50分。 我们考虑优化。(用并查集) 模拟一遍最小生成树,每次合并的时候记录一下每块的个数,并添加答案。 上标: #include<cstdio> #include<...原创 2019-01-19 12:45:31 · 236 阅读 · 0 评论 -
【五校联考3day1】旅游
这题我们可以将询问排序,将边按照比边权从小到大排序。 在处理询问时,依次添加边,用并查集维护即可。 上标: #include<cstdio> #include<cstring> #include<algorithm> using namespace std; struct node{int u,v,d;}a[200010]; struct edge{int x,...原创 2019-01-26 19:12:56 · 251 阅读 · 1 评论 -
jzoj 4769. 【GDOI2017模拟9.9】graph
Description 对于一个图, 如果它的点集能被分成两个部分, 使得在原图中每一部分之间的点没有任何边相连,则该图被称为二分图。 现在给定一个无向图,每次增加一条边,或者删除一条边。要求您每次判断它是不是二分图。 Input 第一行两个数n,m,表示该图的点数和操作数。 接下来m行,以一个数type开头。type为0或1。若type为1则表示加一条边,接下来输入两个数a,b表示它连接的边的编...原创 2019-03-20 21:21:48 · 268 阅读 · 0 评论