
并查集
文章平均质量分 58
判断连通性的方法
李峻枫
这个作者很懒,什么都没留下…
展开
-
Y - 孩子与玩具
Y - 孩子与玩具题目大意有nnn个小朋友,kkk个玩具,每个小朋友都有2个喜欢的玩具。当他选择的时候,他会将他喜欢的玩具全部拿走。求小朋友选择玩具的顺序,使得拿不到玩具的小朋友数量最少。题解玩具是有限的,要使拿不到玩具的小朋友数量最少,就要使拿到2个玩具的小朋友最少。也就是说,尽可能让拿到1个玩具的小朋友多。于是就可以用贪心的思想:首先,将一个小朋友喜欢的两个玩具连边,建图,然后求一个最小生成树就可以了。时间复杂度建图的时间复杂度是O(k)O(k)O(k)的,并查集的复杂度可以近似原创 2021-10-07 08:16:33 · 248 阅读 · 0 评论 -
O - 土豆的集合
O - 土豆的集合题目大意查询某两个点是否联通,或者将某两个点联通,支持查询历史版本。题解如果不需要查询历史版本,那么显然就是并查集。要支持历史版本,那就可持久化一下。但是并查集不能路径压缩,为了保证时间复杂度,需要按秩合并。注意:要及时更新root数组,即便是需要连接的两个点已经联通。时间复杂度按秩合并后的并查集,每一次查询是O(logn)O(\log n)O(logn),可持久化的时间复杂度是O(logn)O(\log n )O(logn)。因此,总的时间复杂度为O(m×lo原创 2021-10-07 08:15:22 · 164 阅读 · 0 评论 -
JZOJ5914. 【NOIP2018模拟10.19】盟主的忧虑
Description江湖由 N 个门派(2≤N≤100,000,编号从 1 到 N)组成,这些门派之间有 N-1 条小道将他们连接起来,每条道路都以“尺”为单位去计量,武林盟主发现任何两个门派都能够直接或者间接通过小道连接。虽然整个江湖是可以互相到达的,但是他担心有心怀不轨之徒破坏这个武林的安定,破坏小道,于是武林盟主又秘密地修建了 M 条密道(1≤M≤100,000),但每条小道距离都不超...原创 2018-10-21 11:58:01 · 324 阅读 · 0 评论 -
JZOJ5910. 【NOIP2018模拟10.18】DuLiu
DescriptionLF是毒瘤出题人中AK IOI2019,不屑于参加NOI的唯一的人。他对人说话,总是满口垃圾题目者也,教人半懂不懂的。因为他姓李,别人便从QQ群上的“毒瘤李Fee”这半懂不懂的话里,替他取下一个绰号,叫做李Fee。李Fee一到机房,所有做题的人便都看着他笑,有的叫道,“李Fee,你又来出毒瘤题了!”他不回答,对验题人说,“我又出了两道题,给我验验。”便排出一排毒瘤题。大家...原创 2018-10-21 11:26:51 · 281 阅读 · 0 评论 -
JZOJ5883. 【NOIP2018模拟A组9.25】到不了
Descriptionwy 和 wjk 是好朋友。今天他们在一起聊天,突然聊到了以前一起唱过的《到不了》。“说到到不了,我给你讲一个故事吧。”“嗯?”“从前,神和凡人相爱了,愤怒的神王把他们关进了一个迷宫里,迷宫是由许多棵有根树组 成的。神王每次把两个人扔进其中的某一棵有根树里面,两个相邻节点的距离为 1,两人的 每一步都只能从儿子走到父亲,不能从父亲走到儿子,他们约定,走到同一个节点相...原创 2018-09-28 22:22:25 · 265 阅读 · 0 评论 -
JZOJ5888. 【NOIP2018模拟9.29】GCD生成树
题解考虑最暴力的一种做法,直接将边全部建出来,这显然是不行的。考虑克鲁斯卡尔的做法,将边权从小到大加入,而且这里的最大边权并不大,就可以直接枚举。假设现在枚举了边权v,那么,aia_iai为v,2v,3v,…两两之间连边的边权就可以为v。其实不用担心2v与4v的边权不是为v的这个问题,因为在枚举边权为2v的时候就已经将他们连起来了。code#include <cst...原创 2018-10-04 20:50:17 · 307 阅读 · 0 评论 -
JZOJ5822. 【NOIP提高A组模拟2018.8.16】 量子纠缠
题目大意给定一个集合,支持加入,纠缠操作,并查询某个字符串是否在集合里面。题解先不看纠缠操作,很显然一棵trie就可以解决。 考虑纠缠操作,其实就是将trie树上面的某些节点进行合并, 用并查集来合并。 设需要纠缠的两个串a,b在tire上的最后一个节点分别为x,y, 设过程entanglement(x,y)表示将x跟y纠缠并把y的信息合并到x上面, 从0到9枚举儿子...原创 2018-08-19 20:43:53 · 327 阅读 · 0 评论 -
5818. 【NOIP提高A组模拟2018.8.15】 做运动
Description一天,Y 君在测量体重的时候惊讶的发现,由于常年坐在电脑前认真学习,她的体重有了突 飞猛进的增长。 幸好 Y 君现在退役了,她有大量的时间来做运动,她决定每天从教学楼跑到食堂来减肥。 Y 君将学校中的所有地点编号为 1 到 n,其中她的教学楼被编号为 S,她的食堂被编号为 T, 学校中有 m 条连接两个点的双向道路,保证从任意一个点可以通过道路到达学校中的所有点。 ...原创 2018-08-18 11:52:38 · 332 阅读 · 0 评论 -
JZOJ5373. 【NOIP2017提高A组模拟9.17】信仰是为了虚无之人
题解我们知道异或是满足前缀和的。 那么,一个区间的异或和就可以变为两个数的异或值。 设si=a1设 s_i=a_1 xor a2a_2 xor … xor aia_i ala_l xor al+1a_{l+1} xor … xor ara_r=sl−1s_{l-1} xor srs_r我们就用并采集维护, 设gig_i 表示i到其的祖先的异或和。我们就依照某一段的异或和来维护并采集。 如果原创 2017-09-18 22:20:40 · 382 阅读 · 0 评论 -
JZOJ3453. 【NOIP2013中秋节模拟】连通块(connect)
题目Description你应该知道无向图的连通块的数量,你应该知道如何求连通块的数量。当你兴奋与你的成就时,破坏王Alice拆掉了图中的边。当她发现,每删去一条边,你都会记下边的编号,同时告诉她当前连通块的个数。 然而,对边编号简直就是个悲剧,因为Alice为了刁难你,拆掉编号从l到r的边,当然你需要做的事情就是求连通块的个数。如果你答对了,Alice会把拆掉的边装好,迚行下一次破坏。如果你无法完原创 2016-07-18 08:10:55 · 2360 阅读 · 0 评论 -
JZOJ1729. blockenemy
题目Description你在玩电子游戏的时候遇到了麻烦。。。。。。 你玩的游戏是在一个虚拟的城市里进行,这个城市里有n个点,都从0~n-1编了号,每两个点之间有且仅有一条路径。现在,你的敌人到这个城市来踩点了!!!为了阻止他们更好的踩点, 你决定切断他们所有踩点人员的联系,使他们孤军作战,然后在各个击破。但是这就要切断某些街道,而你每切断一条路,市民就会产生相对的不满值,不满值越大,城市的和谐度就原创 2016-07-14 14:18:30 · 1638 阅读 · 0 评论