• 五一培训 清北学堂 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;
    }
  • 相关阅读:
    第五周进度条
    《掌握需求过程》阅读笔记01
    第三周进度条
    问题账户需求分析
    2016年秋季阅读个人计划
    梦断代码阅读笔记03
    软件工程概论课程总结
    Python爬取上交所一年大盘数据
    Python爬取6271家死亡公司数据,看十年创业公司消亡史
    python:王思聪究竟上了多少次热搜?
  • 原文地址:https://www.cnblogs.com/xcg123/p/10821884.html
Copyright © 2020-2023  润新知