![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并查集
理想三旬(づ ̄3 ̄)づ╭~
这个作者很懒,什么都没留下…
展开
-
Swap HDU - 2819
题目链接:Swap *题意:给你一个nn的棋盘,值都是0或1,你可以任意交换两行两列,不要求最少步数,交换的结果让对角线都为1 思路:首先我们可以看出如果可以交换出结果,只依靠行交换或者列交换即可,然后我们要求的是一条对角线,意思是每列匹配的位置必须是固定的行, 我们把行当做二分图的左边,列当做二分图的右边,1的时候就是行和列直接有一条边, -1问题我们直接用匈牙利算法求出,求出最大匹配是否是n,如果不是的话,说明有些行还没有匹配,所以不符合要求,如果最大匹配是n的话 我们可以去找属于自己的列,如图 #i原创 2021-10-06 20:30:02 · 56 阅读 · 0 评论 -
Is It A Tree? HDU - 1325&&POJ - 1308
HDU - 1325:是判断一个有向图是不是一棵树 POJ - 1308:是判断一个无向图是不是一棵树 判断有向图是否是一个无向树 1.空树也是树 2.无环 3.最多一棵树,无森林 4.每个结点入度最多为1 无向图题目链接:POJ - 1308 #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; const int maxn=1e5+5; int f[maxn]; .原创 2021-10-05 21:17:13 · 72 阅读 · 0 评论 -
食物链, Find them, Catch them POJ - 1703(分类并查集)
动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这N个动物所构成的食物链关系进行描述: 第一种说法是"1 X Y",表示X和Y是同类。 第二种说法是"2 X Y",表示X吃Y。 此人对N个动物,用上述两种说法,一句接一句地说出K句话,这K句话有的是真的,有的是假的。当一句话满足下列三条之一时,这句话就是假话,否则就是真话。 1) 当前的话与前面的某些真原创 2021-08-01 11:54:59 · 74 阅读 · 0 评论 -
The Tourist Guide
题意:从城市a-b将k位乘客运输至少需要几次,可以用最短路,数据较小,不会超时,也可以用并查集; 注意:每次运输都需要一名导游 最短路: #include<stdio.h> #include<algorithm> #include<string.h> using namespace std; int e[105][105],n,m; void floyd() { int i,j,k; for(k=1;k<=n;k++) { for(原创 2021-07-31 10:08:54 · 61 阅读 · 0 评论 -
并查集
并查集 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编写程序,计算出全省畅通需要的最低成本。 Input 测试输入包含若干测试用例。每个测试用例的第1行给出评估的道路条数 N、村庄数目M ( < 100 );随后的 N 行对应村庄间道路的成本,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间道路的成本(也是正整数)。为简单起见,村庄从1到M编号原创 2021-05-06 21:25:50 · 64 阅读 · 0 评论