写出并查集包含的三种操作


以下是并查集常见的三种操作及示例代码(使用 C++语言): ```cpp #include <iostream> using namespace std; // 查找根节点 int find(int parent[], int i) { // 如果当前节点不是根节点,递归查找根节点 if (parent[i]!= i) { parent[i] = find(parent, parent[i]); } return parent[i]; } // 合并两个集合 void unionSet(int parent[], int x, int y) { int xRoot = find(parent, x); int yRoot = find(parent, y); parent[xRoot] = yRoot; } // 初始化并查集 void makeSet(int parent[], int n) { for (int i = 0; i < n; i++) { parent[i] = i; } } int main() { int parent[10]; makeSet(parent, 10); unionSet(parent, 0, 1); unionSet(parent, 1, 2); int root = find(parent, 0); cout << "Root of 0 is: " << root << endl; return 0; } ``` 对于这段代码,需要注意以下 3 点逻辑: 1. 在查找根节点时,要通过递归确保找到最终的根节点,避免错误的合并。 2. 合并操作时,要确保将一个集合的根节点指向另一个集合的根节点。 3. 初始化操作要将每个元素都初始化为自身,形成独立的集合。 [2024-12-11 20:52:57 | AI写代码神器 | 365点数解答]
- 创建成绩类,包含: 属性:平时成绩(int)、期末成绩(int) 方法:计算总成绩(计算规则:平时成绩*0.4+期末成绩*0.6,保留整数部分,小数部分直接丢弃) 创建学生类,包含: 属性:学号(string)、姓名(string)、语文成绩(成绩类)、数学成绩(成绩类)、物理成绩(成绩类) 方法:计算总分、计算平均分 输入3个学生的信息,将每个学生的信息封装在一个学生对象中。 按输入顺序依次输出3个学生的总分、平均分(精确到小数点后两位,舍去部分按四舍五入规则计入最后一位)。(847点数解答 | 2024-10-11 08:45:50)537
- 创建成绩类,包含: 属性:平时成绩(int)、期末成绩(int) 方法:计算总成绩(计算规则:平时成绩*0.4+期末成绩*0.6,保留整数部分,小数部分直接丢弃) 创建学生类,包含: 属性:学号(string)、姓名(string)、语文成绩(成绩类)、数学成绩(成绩类)、物理成绩(成绩类) 方法:计算总分、计算平均分 输入3个学生的信息,将每个学生的信息封装在一个学生对象中。 按输入顺序依次输出3个学生的总分、平均分(精确到小数点后两位,舍去部分按四舍五入规则计入最后一位)。 浮点数保留小数的相关知识可参考:https://blog.csdn.net/huaishuming/article/details/17752365 注意:未用学生类对象封装数据的,本题计0分(581点数解答 | 2024-11-19 15:54:02)302
- 成绩计算-2-关联类 分数 50 作者 蔡轲 单位 南昌航空大学 创建成绩类,包含: 属性:平时成绩(int)、期末成绩(int) 方法:计算总成绩(计算规则:平时成绩*0.4+期末成绩*0.6,保留整数部分,小数部分直接丢弃) 创建学生类,包含: 属性:学号(String)、姓名(String)、语文成绩(成绩类)、数学成绩(成绩类)、物理成绩(成绩类) 方法:计算总分、计算平均分 输入3个学生的信息,将每个学生的信息封装在一个学生对象中。 按输入顺序依次输出3个学生的总分、平均分(精确到小数点后两位,舍去部分按四舍五入规则计入最后一位)。 浮点数保留小数的相关知识可参考:https://blog.csdn.net/huaishuming/article/details/17752365 注意:未用学生类对象封装数据的,本题计0分(655点数解答 | 2025-04-18 11:41:55)179
- 7-2 成绩计算-2-关联类 分数 50 作者 蔡轲 单位 南昌航空大学 创建成绩类,包含: 属性:平时成绩(int)、期末成绩(int) 方法:计算总成绩(计算规则:平时成绩*0.4+期末成绩*0.6,保留整数部分,小数部分直接丢弃) 创建学生类,包含: 属性:学号(String)、姓名(String)、语文成绩(成绩类)、数学成绩(成绩类)、物理成绩(成绩类) 方法:计算总分、计算平均分 输入3个学生的信息,将每个学生的信息封装在一个学生对象中。 按输入顺序依次输出3个学生的总分、平均分(精确到小数点后两位,舍去部分按四舍五入规则计入最后一位)。 浮点数保留小数的相关知识可参考:https://blog.csdn.net/huaishuming/article/details/17752365 注意:未用学生类对象封装数据的,本题计0分 输入格式: 依次输入3个学生的每门课成绩,每个学生成绩信息格式: 学号+英文空格+姓名+英文空格+课程名+英文空格+平时成绩+英文空格+期末成绩 注:3个学生的课程顺序可能会不一致 例如: 22201311 张琳 语文 7(621点数解答 | 2025-04-18 11:43:55)232
- 题目描述 众所周知,鱼越大,鱼刺越大,鱼刺越大,肉越少,肉越少,鱼越小,所以鱼越大,鱼越小。 请问, 𝑛 n 条大小不一的鱼中,第 𝑖 i 大的鱼,是第几小的鱼? 输入格式 输入包括 1 1 行,包含 2 2 个整数 𝑛 , 𝑖 n,i,分别表示鱼的数量 𝑛 n,和指定鱼是第 𝑖 i大的鱼。 输出格式 输出包括 1 1 行,包含 1 1 个整数,为指定鱼是第几小的鱼。(240点数解答 | 2025-08-01 21:38:06)52
- 题目描述 众所周知,鱼越大,鱼刺越大,鱼刺越大,肉越少,肉越少,鱼越小,所以鱼越大,鱼越小。 请问, 𝑛 n 条大小不一的鱼中,第 𝑖 i 大的鱼,是第几小的鱼? 输入格式 输入包括 1 1 行,包含 2 2 个整数 𝑛 , 𝑖 n,i,分别表示鱼的数量 𝑛 n,和指定鱼是第 𝑖 i大的鱼。 输出格式 输出包括 1 1 行,包含 1 1 个整数,为指定鱼是第几小的鱼。(476点数解答 | 2025-08-01 21:38:52)69
- 题目描述 众所周知,鱼越大,鱼刺越大,鱼刺越大,肉越少,肉越少,鱼越小,所以鱼越大,鱼越小。 请问, 𝑛 n 条大小不一的鱼中,第 𝑖 i 大的鱼,是第几小的鱼? 输入格式 输入包括 1 1 行,包含 2 2 个整数 𝑛 , 𝑖 n,i,分别表示鱼的数量 𝑛 n,和指定鱼是第 𝑖 i大的鱼。 输出格式 输出包括 1 1 行,包含 1 1 个整数,为指定鱼是第几小的鱼。 c++(213点数解答 | 2025-08-01 21:39:26)53
- 写出“传播中国故事”微信小程序的代码(1119点数解答 | 2024-06-21 22:07:18)175
- 写出《将进酒》的内容,并排好版,方便打印(233点数解答 | 2024-09-25 20:51:55)151
- 作为golang开发,golang如何实现两种 get 操作?(465点数解答 | 2023-11-09 18:11:57)179
- 现在给出一个只包会小写字母的字符事s,可以执行最多一次(也可以不执行)操作,选择任意两个下标,交换两个下标的字符。问:能否使得字符串s变成一个周期?(189点数解答 | 2024-10-13 15:08:54)225
- 现在给出一个只包会小写字母的字符事s,可以执行最多一次(也可以不执行)操作,选择任意两个下标,交换两个下标的字符。问:能否使得字符串s变成一个周期?可以用python在nlogn或者更快的时间复杂度内实现吗(251点数解答 | 2024-10-13 15:10:03)121