当前位置:首页 » 《休闲阅读》 » 正文

F

8 人参与  2022年01月04日 10:35  分类 : 《休闲阅读》  评论

点击全文阅读


Powered by:NEFU AB-IN

F - 0-1 MST

  • 题意

    有一个菊花图,给出 n n n个点, m m m条边权为 1 1 1的边,其余的边边权为 0 0 0,问最小生成树的权值

  • 思路

    最优的情况是尽可能的多连边权为 0 0 0的边,即题目没有给出的边,那么连好了边权为 0 0 0的边,就会生成多个连通块,连通块之间的连边即是答案,所以答案就是补图的连通块数量-1

    实现的方法就是进行 d f s dfs dfs,每次进行 d f s dfs dfs找出现存顶点 u u u中不与该点相连的点,那么这些点就与 u u u在同一个连通块内,在总集合里删掉这些点,并且接着 d f s dfs dfs这些点

  • 代码

    /*
     * @Author: NEFU AB-IN
     * @Date: 2021-09-21 18:43:45
     * @FilePath: \ACM\CF\2021.9.17\e.cpp
     * @LastEditTime: 2021-09-21 19:49:56
     */
    #include <bits/stdc++.h>
    using namespace std;
    #define LL long long
    #define MP make_pair
    #define SZ(X) ((int)(X).size())
    #define IOS                      \
        ios::sync_with_stdio(false); \
        cin.tie(0);                  \
        cout.tie(0);
    #define DEBUG(X) cout << #X << ": " << X << endl;
    typedef pair<int, int> PII;
    
    const int N = 1e6 + 10;
    struct Edge
    {
        int v, ne;
    } e[N << 2];
    int h[N];
    int cnt;
    void add(int u, int v)
    {
        e[cnt].v = v;
        e[cnt].ne = h[u];
        h[u] = cnt++;
    }
    void init()
    {
        memset(h, -1, sizeof(h));
        cnt = 0;
    }
    set<int> s;
    
    void dfs(int u)
    {
        set<int> tmp = s;
        for (int i = h[u]; ~i; i = e[i].ne)
        {
            int to = e[i].v;
            tmp.erase(to);
        }
        for (auto i : tmp)
            s.erase(i);
        for (auto i : tmp)
            dfs(i);
    }
    
    signed main()
    {
        IOS;
        init();
        int n, m;
        cin >> n >> m;
        for (int i = 1; i <= m; ++i)
        {
            int u, v;
            cin >> u >> v;
            add(u, v);
            add(v, u);
        }
    
        int ans = 0;
        for (int i = 1; i <= n; ++i)
            s.insert(i);
        for (int i = 1; i <= n; ++i)
        {
            if (s.find(i) != s.end())
            {
                dfs(i);
                ans++;
            }
        }
        cout << ans - 1 << '\n';
        return 0;
    }
    

点击全文阅读


本文链接:http://zhangshiyu.com/post/32648.html

连通  给出  生成  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 半堂花夜渡空城,裴砚泽沈诺柠完本_完本半堂花夜渡空城,裴砚泽沈诺柠
  • 灿若春阳完结版全文_沈墨小香猪张脸全文完结版阅读
  • 大雁南飞人不归结局+番外(沈砚之姜曼殊)结局_(大雁南飞人不归结局+番外大雁南飞人不归结局+番外全书结局)结局列表_笔趣阁(沈砚之姜曼殊)
  • 夕拾难觅朝阳苏亦葵厉晏行完本_夕拾难觅朝阳(苏亦葵厉晏行)
  • [老婆豪掷五百万给初恋,重生后我拒当提款机]人气小说未删减节选_唐欣顾承泽萧然小说节选推荐
  • 半堂花夜渡空城免费在线(裴砚泽沈诺柠)_半堂花夜渡空城免费在线
  • 大雁南飞人不归结局+番外优质全章(姜曼殊沈砚之)_大雁南飞人不归结局+番外优质全章姜曼殊沈砚之
  • [绿茶室友邀请我参加祭祖仪式,却不知我是老祖]人物羁绊章节精选_李岚老祖宗苏婧节选免费试读
  • (番外)+(全书)兰因絮果,爱恨全如玉碎+后续+结局(长乐肖风行)全书在线_兰因絮果,爱恨全如玉碎+后续+结局免费列表_笔趣阁(长乐肖风行)
  • 完结文被绿茶养女夺走真千金身份后,我杀疯了列表_完结文被绿茶养女夺走真千金身份后,我杀疯了(苏楠苏意安+)
  • 刹那芳华顾,褚墨景迟文月+番外+后续_刹那芳华顾,褚墨景迟文月+番外+后续列表
  • 被瘾症折磨的可怜校花免费结局+后续(张团团仁川)全书免费_(张团团仁川)被瘾症折磨的可怜校花免费结局+后续后续(张团团仁川)

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1