https://codeforces.com/contest/1133/problem/F1

题解:贪心+并查集

首先统计每个节点的度的数量,按度的数量从大到小排序,然后并查集建树(类似于最小生成树)

C++版本一

/*
*@Author:   STZG
*@Language: C++
*/
#include <bits/stdc++.h>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<string>
#include<vector>
#include<bitset>
#include<queue>
#include<deque>
#include<stack>
#include<cmath>
#include<list>
#include<map>
#include<set>
//#define DEBUG
#define RI register int
using namespace std;
typedef long long ll;
//typedef __int128 lll;
const int N=200000+10;
const int M=100000+10;
const int MOD=1e9+7;
const double PI = acos(-1.0);
const double EXP = 1E-8;
const int INF = 0x3f3f3f3f;
int t,n,m,k,q;
int ans,cnt,flag,temp,sum,u,v;
int a[N];
int pre[N];
char str;
vector<int>G[N];
struct node{int a,id;bool operator<(const node &S)const{if(a==S.a)return id<S.id;return a>S.a;}
}e[N];
int find(int x){return (pre[x]==x)?x:pre[x]=find(pre[x]);}
int main()
{
#ifdef DEBUGfreopen("input.in", "r", stdin);//freopen("output.out", "w", stdout);
#endif//ios::sync_with_stdio(false);//cin.tie(0);//cout.tie(0);//scanf("%d",&t);//while(t--){scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){e[i].id=i;pre[i]=i;}for(int i=1;i<=m;i++){scanf("%d%d",&u,&v);e[u].a++;e[v].a++;G[u].push_back(v);G[v].push_back(u);}sort(e+1,e+n+1);for(int i=1;i<=n;i++){for(int j=0,k=G[e[i].id].size();j<k;j++){u=e[i].id;v=G[e[i].id][j];int tx=find(u);int ty=find(v);if(tx!=ty){pre[tx]=ty;cout<<u<<" "<<v<<endl;}}}//}#ifdef DEBUGprintf("Time cost : %lf s\n",(double)clock()/CLOCKS_PER_SEC);
#endif//cout << "Hello world!" << endl;return 0;
}

Spanning Tree with Maximum Degree相关推荐

  1. 【Codeforces Round #544 (Div. 3) F2. Spanning Tree with One Fixed Degree】DFS

    F2. Spanning Tree with One Fixed Degree 题意 给你nnn个点mmm条边的无向联通图,找出一棵生成树,使111这个点的度=d=d=d. 1≤n,m≤1051 \l ...

  2. Directed Minimum Spanning Tree: Chu-Liu/Edmonds Algorithm

    我们的现代数据库大作业要求实现一个图查询系统,包括基于属性的子图查询.可达性查询(可选).最短路径查询(可选).TopK最短路径查询(可选).图形化展示(可选)等功能.分成子图同构查询小组以及可达性及 ...

  3. 2021ICPC(澳门) - LCS Spanning Tree(广义后缀自动机)

    题目链接:点击查看 题目大意:给出一个含有 nnn 个点的无向图,点权为一个字符串,每条边的边权为相邻两点的 LCSLCSLCS,本题的 LCSLCSLCS 定义为两个字符串的最长公共子串的长度 求出 ...

  4. 2019ICPC(上海) - Spanning Tree Removal(构造)

    题目链接:点击查看 题目大意:给出一个 nnn 个点的无向完全图,每次操作可以删掉包含 nnn 个点的一棵生成树中的所有边,问最多可以删几次 题目分析:典中典之欧拉通路构造题,构造方式如下: 在选定某 ...

  5. Minimum spanning tree HDU - 6954

    Minimum spanning tree HDU - 6954 题意: 给定n-1个点,编号从2到n,两点a和b之间的边权重为lcm(a,b).请找出它们形成的最小生成树. 2<=n<= ...

  6. Spanning Tree Protocol介绍

    Spanning Tree Protocol(STP)主要是用在网桥上,用来避免网络回路,并制造冗余连接(也就是保证网络的可靠性). 这里只是一个大概的介绍,具体的还是要去看IEEE 的 802.1D ...

  7. 《Boost》Part1 Minimum Spanning Tree

    <Boost>Part1 Minimum Spanning Tree 1.Boost中的最小生成树介绍 MST最小生成树,是图论中的基本算法,还有一种是最大生成树,此处暂不介绍. 最小生成 ...

  8. 数据结构与算法笔记:贪心策略之BSTBBST, Hashtable+Dictionary+Map, Priority Queue~Heap, Minium Spanning Tree

    BST & BBST BST(Binary Search Tree) 二叉搜索树,也就是使用二叉树来做查找 BBST(Balanced Binary Search Tree) 平衡二叉搜索树 ...

  9. 计算机网络之STP(Spanning Tree Protocol)生成树协议详解及其实验配置

    目录 1.STP概念 1.1  STP选举过程 1.1.1 根桥和根端口的选举 1.1.2 端口角色的选举 2.STP端口状态解释及转换 2.1 STP的五种端口状态 2.2 STP过程中的两种常见问 ...

最新文章

  1. mongoDB-3.x启用认证
  2. win8安装msi出现提示2503 2502的错误代码
  3. FFmpeg再学习 -- Windows下安装说明
  4. ASP.NET使用log4Net日志组件教程(按日期与按日志大小切割)
  5. .NET建议使用的大小写命名原则
  6. 关于IDEA WEB项目的创建与无法继承HttpServlet问题
  7. Linux内存管理:为什么 Linux 需要虚拟内存?为什么 Linux 默认页大小是 4KB?
  8. LabelImg安装教程(已亲测)
  9. python可爱的小猫动画_菜根谭小猫
  10. 软件测试周刊(第54期):管他乐观还是悲观,都滚蛋,干就完了。
  11. (原创)AD账户误删导致Exchange邮箱被删 莫苦恼
  12. Spring框架初学习
  13. 数字证书是什么,里面都包含那些内容
  14. 赚任务网APP下载站源码/任务网源码/积分墙/网络任务网站源码
  15. imx6ull:uboot的make xxx_defconfig 过程分析
  16. python3下载-QPython3下载
  17. vscode使用问题合集
  18. PS 合并RGB通道 编辑单通道
  19. Thinkjs——定时任务配置代码示例
  20. 阿里云CentOS7服务器安装图形界面及windows远程连接

热门文章

  1. python pytorch自定义_PyTorch使用自定义模块创建数据模型
  2. 扫描路径_SolidWorks沿路径扭转扫描的线缆实例
  3. cwntos新建目录挂载磁盘_centos6修改挂载磁盘目录的方法
  4. Java中main函数只能调用同类中的静态方法?
  5. HTML的<span>标签【杂记】
  6. 初学者python书籍推荐_2019年Python入门书籍推荐
  7. 期末考试前的预习,科目:化工设备与反应器(3)
  8. 八、Java中的i++和++i到底是什么?
  9. 计算机设计学校,计算机设计制作大赛
  10. 博后招募 | 清华大学电子系姚权铭教授招聘机器学习方向博士后