zoukankan      html  css  js  c++  java
  • 五一培训 清北学堂 DAY5

    今天是吴耀轩老师的讲解~

    今天的主要内容:图论

    如何学好图论?

    学好图论的基础:必须意识到图论!

    邻接矩阵存图:

    其缺点是显而易见的:1. 空间复杂度O(n^2)不能接受;2.有重边的时候很麻烦;

    优点很简单啦:好写qwq(是不是有点糊弄)

    邻接表

    一些vector的细节:

    生成树

    既然它是一颗树,那么应该满足无环!

    比如这样它就是一颗有环树!

    看个题:

    实际上就是让你求最小瓶颈树!qwq

    显然红色的更优!

    这些是做这个题的做法:

    并查集

    Kruskal

    判断是否构成环:并查集判断是否在一颗树上!

    贴上Kruskal的代码:

    #include <bits/stdc++.h>
    
    using namespace std;
    
    const int maxn = 1000005;
    struct edge {
        int u, v, w;
    }edg[maxn];
    int n, m, p[maxn], ans = 0;
    
    bool cmp(edge a, edge b)
        {return a.w < b.w;}
    int findp(int t) 
        {return p[t] ? p[t] = findp(p[t]) : t;}
    bool merge(int u, int v)
    {
        u = findp(u); v = findp(v);
        if (u == v) return false;
        p[u] = v; return true;
    }
    int main()
    {
        cin >> n >> m;
        for (int i = 1, u, v, w; i <= m; i++)
            cin >> u >> v >> w, edg[i] = (edge){u, v, w};
        sort(edg + 1, edg + m + 1, cmp);
        
        for (int i = 1; i <= m; i++)
            if (merge(edg[i].u, edg[i].v))
                ans = max(ans, edg[i]. w);
        cout << ans << endl;
    }
  • 相关阅读:
    集合类小结
    Java相关文章
    centos下同时启动多个tomcat
    express发送get或post请求
    node.js的querystring模块
    node.js的url解析和生成
    node.js判断是否文件夹和文件
    node.js删除文件
    node.js对文件夹增删改查的操作
    node运行js文件热更新
  • 原文地址:https://www.cnblogs.com/xcg123/p/10821884.html
Copyright © 2011-2022 走看看