牛客多校2 - Cover the Tree(dfs序)
题目链接:点击查看
题目大意:给出一棵无根树,问能否选择数量最少的链,使得所有的路径都被覆盖到
题目分析:读完题后不难看出,假设叶子结点的个数为 x,那么答案就是 x / 2 向上取整
然后说结论,dfs序依次拿出叶子结点后,第 i 个叶子结点和第 i + x/2 个匹配就可以了,证明如下:
代码:
#include<iostream>
#include<cstdio>
#include<string>
#include<ctime>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<stack>
#include<climits>
#include<queue>
#include<map>
#include<set>
#include<sstream>
#include<cassert>
using namespace std;typedef long long LL;typedef unsigned long long ull;const int inf=0x3f3f3f3f;const int N=2e5+100;vector<int>node[N],ans;void dfs(int u,int fa)
{if(node[u].size()==1)ans.push_back(u);for(auto v:node[u]){if(v==fa)continue;dfs(v,u);}
}int main()
{
#ifndef ONLINE_JUDGE
// freopen("input.txt","r",stdin);
// freopen("output.txt","w",stdout);
#endif
// ios::sync_with_stdio(false);int n;scanf("%d",&n);for(int i=1;i<n;i++){int u,v;scanf("%d%d",&u,&v);node[u].push_back(v);node[v].push_back(u);}int root=1;while(node[root].size()==1)root++;dfs(root,-1);int sz=ans.size(),cnt=(sz+1)/2;printf("%d\n",cnt);for(int i=0;i<cnt;i++)printf("%d %d\n",ans[i],ans[(i+sz/2)%sz]);return 0;
}
牛客多校2 - Cover the Tree(dfs序)相关推荐
- 2021牛客多校7 - xay loves trees(dfs序+主席树-标记永久化)
题目链接:点击查看 题目大意:给出两棵以点 111 为根节点的有根树,现在要求满足条件的最大集合: 在第一棵树中,集合内的任意两个点都必须满足祖先关系,即 uuu 是 vvv 的祖先或 vvv 是 u ...
- 2019牛客多校第一场
2019牛客多校第一场 题号 题目 知识点 A Monotonic Matrix B Symmetric Matrix C Fluorescent 2 D Two Graphs E Removal F ...
- 2020 牛客多校第一场
2020 牛客多校第一场 A. B-Suffix Array 后缀数组的思想:倍增+桶排序的方式找出一串连续序列后缀的大小.虽说正常使用的时候都是字典序,但是只要修改排序方式,也能够达到一个类似的&q ...
- 牛客多校三 B Black and white
牛客多校三 B Black and white 在n*m的棋盘上,每个格子有一个数,初始可以选一定的格子标记为黑色,在任意四个形如(i1, j1)(i1, j2)(i2, j1)(i2, j2)的格子 ...
- LCS(2021牛客多校4)
LCS(2021牛客多校4) 题意: 让你构造三个字符串s1,s2,s3,长度均为n,要求LCS(s1,s2)=a,LCS(s2,s3)=b,LCS(s1,s3)=c 题解: 先考虑三个串互相LCS为 ...
- 24dian(牛客多校第三场)
24dian(牛客多校第三场) 题意: 给你n张牌,每张牌的大小为1 ~ 13,问这些牌与加减乘除任意组合(可以使用括号),且但所有的有效解在计算过程中都涉及到分数,即非整数,能否组成答案m,如果可以 ...
- 2018年牛客多校算法寒假训练营练习比赛(第一场)C. 六子冲
2018年牛客多校算法寒假训练营练习比赛(第一场)C. 六子冲 题目链接 做法:模拟即可 #include <bits/stdc++.h> #define P pair<int,in ...
- 2019牛客多校第四场 I题 后缀自动机_后缀数组_求两个串de公共子串的种类数
目录 求若干个串的公共子串个数相关变形题 对一个串建后缀自动机,另一个串在上面跑同时计数 广义后缀自动机 后缀数组 其他:POJ 3415 求两个串长度至少为k的公共子串数量 @(牛客多校第四场 I题 ...
- 2022牛客多校(十)
2022牛客多校(十) 一.比赛小结 比赛链接:"蔚来杯"2022牛客暑期多校训练营10 二.题目分析及解法(基础题) F.Shannon Switching Game? 题目链接 ...
最新文章
- C语言实现傅里叶变换函数dft,idft,fft,ifft
- jvm误区--动态对象年龄判定
- 利用 Arthas 精准定位 Java 应用 CPU 负载过高问题
- mft文件记录属性头包括_NTFS 文件系统基础知识
- OpenHarmony3.0 编译烧录
- 英伟达吞并ARM的交易计划失败!
- php开发工具 知乎,一个微信小程序版知乎实例分享
- 让聊天机器人来填平技术鸿沟吧!
- CF755F PolandBall and Gifts
- 烽火2640路由器命令行手册-14-桥接配置命令
- 预言机 - 区块链的触角
- oracle乘法运算,乘法运算
- SGU133 Border
- 真题丨2018 年 7 月 28 日贵州省遵义市播州区事业单位面试真题(综合岗)
- 再回首 --- 零点伤感
- 百度知道api使用经验
- 交易的流动——从钱包到区块链网络
- 《信号与系统》示例1.单位阶跃信号的matlab实现
- 密集预测/Dense Prediction
- 墨奇科技博客 | 理解度量学习的新姿势
热门文章
- arcengine根据属性高亮显示图像_新品发布艺卓推出300万像素彩色医疗显示器RX360...
- MySQL高级 - SQL优化 - 索引提示
- 四种方式下创建线程启动的区别
- log4j2 无垃圾模式
- springboot的自动配置原理
- tomcat_安装卸载启动
- ZooKeeper快速入门
- smartupload 路径不存在_洞悉复杂金融场景,覆盖完备测试路径
- 2d shader unity 阴影_Unity中实现2D光照系统
- ubuntu18.04 VirtualBox 开启虚拟机出错 Kernel driver not installed (rc=-1908)