![](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 · 235 阅读 · 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 · 165 阅读 · 0 评论 -
【NOIP2012模拟8.10】生成输入数据
这题可以很容易就想到,由于我们要将最小生成树变成原来的完全图,而且要使边权和最小。那么:如果我们在x和y连一条边,那么这条边的长度变为↙那个最小生成树中x到y的路径上最大的边权+1。这样子暴力O(n2),只能拿50分。我们考虑优化。(用并查集)模拟一遍最小生成树,每次合并的时候记录一下每块的个数,并添加答案。上标:#include<cstdio>#include<...原创 2019-01-19 12:45:31 · 242 阅读 · 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 · 266 阅读 · 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 · 283 阅读 · 0 评论