随笔分类 - 并查集
摘要:描述 给定一个n个顶点(1~n编号),m条边的简单无向图,判断是否是一个路径图。 路径图要求:必须存在一个顶点序列v1, v2, ..., vn,它是1~n的一个排列,且对于任何1<=i<=n-1,vi和vi+1之间有边相连,而对于任何1<=i, j<=n(其中|i-j|>=2),vi和vj之间没有
阅读全文
摘要:王先生想要一些男孩帮助他完成一个项目。因为项目比较复杂,男生来的越多越好。当然有一定的要求。王先生选择了一个足够容纳孩子们的房间。没有被选中的男孩必须立即离开房间。一开始房间里有10000000个男孩,编号从1到10000000。经过王先生的选择,他们中仍然在这个房间里的任何两个应该是朋友(直接或间
阅读全文
摘要:描述 编写一个程序,读取 SNS(社交网络服务)中的关系,并判断给定的用户对是否可以通过网络相互访问。 输入 第一行给出了两个整数n和m。n 是 SNS 中的用户数,m 是 SNS 中的关系数。SNS 中的用户由 ID 0,1,...,n-1 标识。 在接下来的 m 行中,给出了关系。每个关系由两个
阅读全文
摘要:描述 江湖上散落着各式各样的大侠,有上千个之多。他们没有什么正当职业,整天背着剑在外面走来走去,碰到和自己不是一路人的,就免不了要打一架。但大侠们有一个优点就是讲义气,绝对不打自己的朋友。而且他们信奉“朋友的朋友就是我的朋友”,只要是能通过朋友关系串联起来的,不管拐了多少个弯,都认为是自己人。这样一
阅读全文
摘要:描述 有n个人,编号为1,2,……n,另外还知道存在K个关系。一个关系的表达为二元组(α,β)形式,表示α,β为同一家庭的成员。 当n,k和k个关系给出之后,求出其中共有多少个家庭、最大的家庭中有多少人? 例如:n=6,k=3,三个关系为(1,2),(1,3),(4,5) 此时,6个人组成三个家庭,
阅读全文
摘要:描述 某个局域网内有n(n≤100)台计算机,由于搭建局域网时工作人员的疏忽,现在局域网内的连接形成了回路,我们知道如果局域网形成回路那么数据将不停的在回路内传输,造成网络卡的现象。因为连接计算机的网线本身不同,所以有一些连线不是很畅通,我们用f(i,j)表示i,j之间连接的畅通程度(f(i,j)≤
阅读全文
摘要:描述 学校有n台计算机,为了方便数据传输,现要将它们用数据线连接起来。两台计算机被连接是指它们有数据线连接。由于计算机所处的位置不同,因此不同的两台计算机的连接费用往往是不同的。 当然,如果将任意两台计算机都用数据线连接,费用将是相当庞大的。为了节省费用,我们采用数据的间接传输手段,即一台计算机可以
阅读全文
摘要:描述 有一些人一起旅行。他们中的一些人是朋友。朋友关系是传递性的,即如果A和B是朋友,B和C是朋友,那么A和C也会成为朋友。 这些人打算在酒店预订一些房间。但是他们每个人都不想和陌生人住在一起,也就是说,如果A和D不是朋友,他们是不能住一个房间的。 鉴于这些人的信息,你能确定他们至少要预订多少间客房
阅读全文
摘要:1299: 描述 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? 输入 测试输入包含若干测试用例。每个测试用例的第1行
阅读全文
摘要:描述 上次Gardon的迷宫城堡小希玩了很久(见3645),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任
阅读全文
摘要:先来看看代码清单: (1)初始化 for(int i=1;i<=n;i++)f[i] = i; //初始化每个的爹是自己 因为每个元素属于单独的一个集合,所以每个元素以自己作为结点 (2)寻找根结点编号并压缩路径 int find(int x) { //如果第x个人的爹f[x]不是自己,那么就继续去
阅读全文
摘要:一个超级有意思,好懂的并查集解释, 膜拜大神,资料太多,找不到原著了,所以算是知识剽窃了。 并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。 故事读完了,并查集就会了 江湖上散落着各式各样的大侠,有上千个之多。他们没有什么正当职业,整天背着剑在外面走
阅读全文