zoukankan      html  css  js  c++  java
  • Codeforces Round #544 (Div. 3) F1. Spanning Tree with Maximum Degree

      题意是给个图,然后求生成树的最大度数的节点的度数最大化的值。

      思路:生成树里最大度数的节点的度数取最大,所对应的那个节点必定是原图里度最大的节点,然后由该点向四周bfs,直至所有点都在一个树里。

      

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=2e5+10;
    vector<int>g[maxn];
    bool vis[maxn];
    int n,m,deg[maxn];
    void bfs(int st)
    {
        vis[st]=1;
        queue<int>q;
        while(!q.empty()) q.pop();
        q.push(st);
        while(!q.empty())
        {
            int now=q.front();q.pop();
            int sz=g[now].size();
            for(int i=0;i<sz;i++)
            {
                int v=g[now][i];
                if(!vis[v])
                    vis[v]=1,printf("%d %d
    ",now,v),q.push(v);
    
            }
        }
    }
    int main()
    {
        scanf("%d%d",&n,&m);
        for(int i=1;i<=m;i++)
        {
            int u,v;
            scanf("%d%d",&u,&v);
            deg[u]++;deg[v]++;
            g[u].push_back(v);
            g[v].push_back(u);
        }
        int nod,maxx=-1;
        for(int i=1;i<=n;i++)
        {
            if(deg[i]>maxx)
                maxx=deg[i],nod=i;
        }
        bfs(nod);
        return 0;
  • 相关阅读:
    Android home键和back键区别
    装饰器模式
    对象的序列化
    构建器问题
    finnally的一些用法
    LinkedList ArrayList测试2
    LinkedList ArrayList测试
    meizu调试遇到 的问题
    java和c#通过esb服务互调用组件
    .NET平台常用的框架整理
  • 原文地址:https://www.cnblogs.com/eason9906/p/11754797.html
Copyright © 2011-2022 走看看