
并查集
LOI_Q
“愿我们合上笔盖的刹那,有着侠客收剑入鞘的骄傲。”
展开
-
Codevs 1074&&洛谷 P2024 食物链
题目描述 动物王国中有三类动物 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 个动物原创 2017-10-27 11:31:05 · 342 阅读 · 0 评论 -
Codevs 1069 && 洛谷 1525 关押罪犯 并查集
……原创 2017-09-27 19:30:56 · 459 阅读 · 0 评论 -
Codevs 2597 团伙
题目描述 Description 1920年的芝加哥,出现了一群强盗。如果两个强盗遇上了,那么他们要么是朋友,要么是敌人。而且有一点是肯定的,就是:我朋友的朋友是我的朋友;我敌人的敌人也是我的朋友。 两个强盗是同一团伙的条件是当且仅当他们是朋友。现在给你一些关于强盗们的信息,问你最多有多少个强盗团伙。输入描述 Input Description 输入文件gangs.in的第一行是一个整数N(2<原创 2017-09-24 21:03:54 · 461 阅读 · 0 评论 -
“家族”“团伙”小总结 (简称"小""家""伙") +再来一波关押罪犯
家族:纯裸并查集,版子题 只需要知道谁与谁有亲戚关系,只合并是亲戚的,保证他们一个祖先即可,其他的不用管,祖先是谁不影响最后“yes or no”的判断。 if x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。 but 若xy不是亲戚,xz不是亲戚,那不能确定yz是不是亲戚 只需要一种关系即可确定答案团伙: 给出一系列关系原创 2017-09-24 20:41:27 · 372 阅读 · 0 评论 -
Codevs 1073 家族
题目描述 Description 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。 规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。输入描述 Input Description 第一行:三个整数n,m,p,(n<=5000,m<=5000,p<=50原创 2017-09-24 09:54:49 · 348 阅读 · 0 评论 -
并查集 (不相交集数据结构)
来源于《啊哈!算法》//给出几个人的联系,求有几个团伙 #include<cstdio>using namespace std;int f[1000]={0},n,m,k,sum;//sum:团伙数 //初始化,数组里面存自己数组下标的编号 void init(){ int i; for(int i=1;i<=n;i++) f[i]=i; return ;}原创 2017-09-24 08:34:13 · 596 阅读 · 0 评论 -
Codevs 1231 最优布线问题
题目描述 Description 学校需要将n台计算机连接起来,不同的2台计算机之间的连接费用可能是不同的。为了节省费用,我们考虑采用间接数据传输结束,就是一台计算机可以间接地通过其他计算机实现和另外一台计算机连接。为了使得任意两台计算机之间都是连通的(不管是直接还是间接的),需要在若干台计算机之间用网线直接连接,现在想使得总的连接费用最省,让你编程计算这个最小的费用。输入描述 Input Des原创 2017-09-24 07:32:00 · 294 阅读 · 0 评论