
并查集
并查集
feng_zhiyu
这个作者很懒,什么都没留下…
展开
-
【PAT甲级】1107 Social Clusters(30 分)(并查集)
题目链接When register on a social network, you are always asked to specify your hobbies in order to find some potential friends with the same hobbies. A social cluster is a set of people who have some of...原创 2018-09-01 18:10:42 · 444 阅读 · 0 评论 -
【PAT甲级】1034. Head of a Gang (30)(并查集)
题目链接One way that the police finds the head of a gang is to check people's phone calls. If there is a phone call between A and B, we say that A and B is related. The weight of a relation is defined t...原创 2018-07-30 22:10:24 · 532 阅读 · 0 评论 -
【PAT甲级】1021 Deepest Root (25)(dfs+并查集)
题目链接A graph which is connected and acyclic can be considered a tree. The height of the tree depends on the selected root. Now you are supposed to find the root that results in a highest tree. Such a...原创 2018-07-28 22:32:41 · 452 阅读 · 0 评论 -
【poj 1611 The Suspects 】(并查集)
题目链接并查集代码://#include <bits/stdc++.h>#include <cstdio>#include <iostream>#include <vector>#include <queue>#include <algorithm>using namespace std;#define...原创 2018-05-12 15:31:54 · 251 阅读 · 0 评论 -
【第十四届华中科技大学程序设计竞赛决赛同步赛】A Beauty of Trees(并查集,前缀和)
链接: https://www.nowcoder.com/acm/contest/119/A 题意: 有n个数,每次给你一个信息l, r, k,代表a[l] ^ a[l+1] ^ … ^ a[r] = k,问你哪些信息是错误的,如果x信息和y信息可以x对y错或者x错y对,那么认为先给出的信息是对的。隔了这么久才来补题解。 思路: 这里是看了春哥大佬写的, 依照题意。如果前后有x...原创 2018-05-12 11:23:18 · 427 阅读 · 0 评论 -
【天梯赛】 L2-013. 红色警报(并查集)
战争中保持各个城市间的连通性非常重要。本题要求你编写一个报警程序,当失去一个城市导致国家被分裂为多个无法连通的区域时,就发出红色警报。注意:若该国本来就不完全连通,是分裂的k个区域,而失去一个城市并不改变其他城市之间的连通性,则不要发出警报。输入格式:输入在第一行给出两个整数N(0 &lt; N &lt;=500)和M(&lt;=5000),分别为城市个数(于是默认城市从0到N-1编号)和...原创 2018-03-30 19:13:55 · 453 阅读 · 0 评论 -
【天梯赛】L2-010. 排座位(并查集)
布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位。无论如何,总不能把两个死对头排到同一张宴会桌旁!这个艰巨任务现在就交给你,对任何一对客人,请编写程序告诉主人他们是否能被安排同席。输入格式:输入第一行给出3个正整数:N(&lt;= 100),即前来参宴的宾客总人数,则这些人从1到N编号;M为已知两两宾客之间的关系数;K为查询的条数。随后M行,每行给出一对宾客之间的关系,格式为:“宾客...原创 2018-03-30 17:26:09 · 319 阅读 · 0 评论 -
【天梯赛】 L3-003. 社交集群(并查集)
时间限制 1000 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 在社交网络平台注册时,用户通常会输入自己的兴趣爱好,以便找到和自己兴趣相投的朋友。有部分兴趣相同的人们就形成了“社交集群”。现请你编写程序,找出所有的集群。输入格式:输入的第一行给出正整数N(&lt;=1000),即社交网络中的用户总数(则用户从1到...原创 2018-03-27 18:35:19 · 369 阅读 · 0 评论 -
【天梯赛】L2-024部落(并查集)
在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同一个部落。输入格式: 输入在第一行给出一个正整数N(≤10 4 ),是已知小圈子的个数。随后N行,每行按下列格式给出一个小圈子里的人:K P[1] P[2] ⋯ P[K]其中...原创 2018-03-20 14:08:08 · 458 阅读 · 0 评论 -
【EOJ 2067. Building Roads】(MST kruskal算法)
Time limit per test: 2.0 secondsMemory limit: 256 megabytesFarmer John had just acquired several new farms! He wants to connect the farms with roads so that he can travel from any farm to any othe...原创 2018-02-13 16:06:52 · 543 阅读 · 0 评论 -
【HDU 1811 Rank of Tetris】(拓扑排序判环 + 并查集合并)
自从Lele开发了Rating系统,他的Tetris事业更是如虎添翼,不久他遍把这个游戏推向了全球。为了更好的符合那些爱好者的喜好,Lele又想了一个新点子:他将制作一个全球Tetris高手排行榜,定时更新,名堂要比福布斯富豪榜还响。关于如何排名,这个不用说都知道是根据Rating从高到低来排,如果两个人具有相同的Rating,那就按这几个人的RP从高到低来排。 终于,Lele要开始行动了原创 2018-02-02 16:36:06 · 338 阅读 · 0 评论 -
历届试题 国王的烦恼(并查集+排序)
时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛。两个小岛间可能存在多座桥连接。然而,由于海水冲刷,有一些大桥面临着不能使用的危险。 如果两个小岛间的所有大桥都不能使用,则这两座小岛就不能直接到达了。然而,只要这两座小岛的居民能通过其他的桥或者其他的小岛互相到达,他们就会安然无原创 2018-01-02 21:10:23 · 353 阅读 · 0 评论 -
(UVa 1395)Slim Span (苗条的生成树)(并查集+Kruskal)
https://vjudge.net/problem/UVA-1395 题意:给出一个n(n<=100)节点的图,求苗条度(最大边减最小边的值)尽量小的生成树分析: 按权值从小到大排序。 对于一个连续的边集区间[L,R],如果这些边使得n个点全部联通,则存在一个苗条度不超过W[R]-W[L]的生成树。#include <cstdio>#include <iostream>#include <v原创 2017-12-31 15:57:14 · 361 阅读 · 0 评论 -
(UVA - 208)Firetruck(路径输出问题,回溯+并查集/floyd算法+dfs)
题目链接: https://vjudge.net/problem/UVA-208题意:输入一个n(n<=20)个节点的无向图以及某个节点k,按照字典序从小到大顺序输出从节点1到节点k的所有路径,要求节点不能重复。分析:路径输出问题,路径的第一个和最后一个点是固定的,可以用dfs从小到大搜索,回溯求出所有的路径记录并输出。 注意要提前判断节点1是否可以到达节点k,不然会TLE。提前判断能否到达,我写原创 2017-08-13 09:44:07 · 687 阅读 · 0 评论 -
感染者(并查集)
题目描述 2003年3月SARS病毒疯狂的席卷了全球。为了降低被感染的可能性,最好的办法就是将感染者隔离。 在NSYSU大学,有许多学生社团.同一个学生社团中的人会频繁的接触,而一个学生可能会加入很多个团体。为了防止SARS的传播,NSYSU搜集了所有学生社团的名单。 只要社团中有一个人被感染,那么社团中的每一个人都将被感染。可是,每当出现一个感染者,要确定每一个人是否被感染确实很困难的。你能原创 2017-07-20 00:18:31 · 466 阅读 · 0 评论 -
宗教信仰(并查集)
[http://acm.hnust.cn/JudgeOnline/problem.php?cid=1310&pid=0] 分析:若简单的用数组,难免会消耗很大的内存空间,而且通过排序,可能会TLE,而并查集的时间复杂度接近O(1),因此用并查集。两个学生信仰同一个宗教就合并(即把他们的父节点置为同一个)#include<cstdio>#include<algorithm>using names原创 2017-07-20 00:06:35 · 556 阅读 · 0 评论 -
并查集_ 模板
并查集的实现(复杂度:比O(log(n))还要快的阿克曼函数的反函数的数量级,接近于O(1))编号代表每个元素,数组par表示的是父亲的编号,par[x]=x时,x是所在的树的根int par[MAX_N];///父亲int high[MAX_N];///树的高度///初始化n个元素void init(int n){ for(int i=0; i原创 2017-06-21 22:24:43 · 384 阅读 · 0 评论 -
还是畅通工程(最小生成树模板题)
http://acm.hdu.edu.cn/webcontest/contest_showproblem.php?cid=11670&pid=1007&ojid=0思路:按村庄间的距离从小到大排序,选择构成最小生成树1.prim算法本题的数据村庄(即顶点的个数)不是很大,故可直接遍历,若数据很大时,就需要用堆来维护每个顶点的当前最短距离265 MS1608 KB原创 2017-06-01 11:40:17 · 507 阅读 · 0 评论 -
并查集_无线网络
题目描述一场地震在东南亚发生了。不幸的是ACM组织通过电脑建立的无线网络遭到了毁灭性的影响—--网络中所有的电脑都损坏了。在陆续的维修电脑之后,无线网络有逐渐开始再一次运作了。由于硬件的制约,每两台电脑只能保持不超过d米的距离,才可以直接进行通讯。但是每台电脑又可以作为其它两台电脑通讯的中介点,也就是说假设A电脑与B电脑不在能直接通讯的的范围内,但是它们可以通过同时能与A和B电脑通讯的C电脑建原创 2017-05-28 23:47:49 · 561 阅读 · 0 评论