第十一章:图论part06 108.冗余连接 109.冗余连接II (补)

任务日期:7.31

题目一链接: 108. 冗余连接 (kamacoder.com)

思路:从前到后遍历边,如果当前两个点不在一个集合就使他们加入到一个集合,构成树,如果位于一个集合则输出他们,因为如果把他们加入就会形成环

代码:

cpp 复制代码
#include <bits/stdc++.h> 
using namespace std;
std::vector<int> father(1010,0);//按照节点大小范围定义数组
int n;

void unit() {
    for(int i = 0;i < n;i ++) {
        father[i] = i;
    }
}

int find(int u) {//寻找u的根节点
    return u == father[u] ? u : find(father[u]);//压缩距离:递归到下一层
}

void joint(int u,int v) {
    u = find(u);//这样节约空间不用重新定义新变量
    v = find(v);
    if(u == v) return;
    else father[v] = u;
}

bool issame(int u,int v) {
    u = find(u);
    v = find(v);
    return u == v;//bool函数可以返回true或者false
}

int main() {
    cin>>n;
    unit();
    for(int i = 0;i < n;i ++) {
        int s,t;
        cin>>s>>t;
        if(issame(s,t)) {//如果两个节点在一个集合
            cout<<s<<" "<<t;
            return 0;//从前往后找第一组符合条件的数据就是答案
        }
        else joint(s,t);//不在一个集合那么就使加入到一个集合以组成树
    }
}

难点:

解释细节1:




题目二链接:

思路:

代码:

难点:

解释细节1:




题目三链接:

思路:

代码:

难点:

解释细节1:

相关推荐
立志成为大牛的小牛17 小时前
数据结构——三十三、Dijkstra算法(王道408)
数据结构·笔记·学习·考研·算法·图论
天选之女wow1 天前
【代码随想录算法训练营——Day52】图论——101.孤岛的总面积、102.沉没孤岛、103.水流问题、104.建造最大岛屿
算法·深度优先·图论
黑菜钟1 天前
代码随想录第51 52天 | 图论-岛屿问题汇总
图论
Mr.H01271 天前
克鲁斯卡尔(Kruskal)算法
数据结构·算法·图论
黑菜钟1 天前
代码随想录第53天 | 图论二三题
c++·图论
黑菜钟2 天前
代码随想录第50天 | 图论 基础介绍(新篇章
算法·深度优先·图论
天选之女wow3 天前
【代码随想录算法训练营——Day51】图论——99.计数孤岛、100.最大岛屿的面积
算法·图论
xier_ran5 天前
邻接矩阵的 k 次幂意味着什么?从图论到路径计数的直观解释
算法·图论
AICodeThunder6 天前
【S组篇】C++知识点总结(1):并查集基础
c语言·数据结构·c++·算法·图论
极客数模8 天前
2025年MathorCup 大数据竞赛明日开赛,注意事项!论文提交规范、模板、承诺书正确使用!2025年第六届MathorCup数学应用挑战赛——大数据竞赛
大数据·python·算法·matlab·图论·比赛推荐