随笔分类 - 并查集
摘要:题意: 给你一个数组 arr ,该数组表示一个从 1 到 n 的数字排列。有一个长度为 n 的二进制字符串,该字符串上的所有位最初都设置为 0 。 在从 1 到 n 的每个步骤 i 中(假设二进制字符串和 arr 都是从 1 开始索引的情况下),二进制字符串上位于位置 arr[i] 的位将会设为 1
阅读全文
摘要:题意: 给你一个n个点m条边的图,对于第i条边,它的长度是2i,对于每一个顶点,它不是0类型,就是1类型。你需要找出来对于所有的“两个不同类型的点之间最短距离”的和 题解(参考:https://blog.csdn.net/wayne_lee_lwc/article/details/107851431
阅读全文
摘要:题意: t组输入,有n个人,刚开始谁也不认识谁。每一个人有一个权值w[i](1<=w[i]<=2),你要挑选3个互相不认识的人组成一个队,且要保证3个人权值之和大于等于5(也就意味着最少要有权值为2的人) 为你能找到多少个满足题意得队伍 然后给你n-1个关系,每个关系输入x y 这表示x和y认识了,
阅读全文
摘要:题目链接:Total Eclipse 题意: t组输入,给你一个由n个点,m条边构成的图,每一个点的权值是ai。你每一次可以选择一批联通的点,然后让他们的权值都减去1。问最后把所有点的权值都变成0需要多少次操作 题解: 最简单的思路就是每一次dfs找到图中联通的最长的链,然后让这条链减去链上所有点中
阅读全文
摘要:题意: 有 n个不同的糖果,从 1到 n编号。有 k个客人。要用糖果招待客人。对于每个客人,这些糖果中恰有两个是其最爱。第 i个客人最爱的糖果编号是 xi和 y。将 k 个客人任意排列,他们按顺序去拿自己最爱的糖果。客人要拿到至少一个最爱的糖果才满意。求不满意的客人的最小数目。 题解: 题目让求不满
阅读全文
摘要:代码: 1 /* 2 这道题也是简单并查集,并查集复杂度: 3 空间复杂度为O(N),建立一个集合的时间复杂度为O(1),N次合并M查找的时间复杂度为O(M Alpha(N)), 4 这里Alpha是Ackerman函数的某个反函数,在很大的范围内(人类目前观测到的宇宙范围估算有10的80次方个原子
阅读全文
摘要:1 //题意:有n只袜子,m天,k个颜色,每个袜子有一个颜色,再给出m天,每天有两只袜子,每只袜子可能不同颜色, 2 //问要让每天的袜子是相同颜色的,要重新染色的袜子数最少是多少。 3 // 4 //这里要注意一点,就是他是一次处理完,之后不会继续染色。这就意味着像 5 //4 3 2 6 //1 1 2 2 7 //1 2 8 //2 3 9 //3 4 10 //这样的一组数据他只能把全部袜
阅读全文
摘要:思路:刚看这道题感觉什么都不清楚,人物之间的关系一点也看不出来,都不知道怎么写,连并查集都没看出来,但是你可以仔细分析一下,当输入字符串为“yes”的时候,我们设输入的值为x和y,当x为天使是则由题可知y也为天使;当x为魔鬼的时候,则y也为魔鬼,所以输入“yes”的时候就相当于说他们是同类。 当输入
阅读全文
摘要:首先说并查集有三种 1、第一种是最简单的,没有权值 2、第二种是带权值的并查集 3、第三种是种类并查集(后面以食物链这道题来讲解) 每一种都是有模板的,要尽可能理解后才能长时间记忆 一、(first of all) 所有并查集由三部分组成 主函数、寻找根节点函数(finds)、合并根节点函数(joi
阅读全文