CF1042F Leaf Sets

【信息科学与工程学】计算机科学与技术——第七十七篇 系统架构设计02 编号类型模型配方企业资本运作的方法/规则/条件/依据及所有的步骤(​风险处理/异常处理/危机应对关联知识法律法规和裁决依据​​由发起人(通常是知名投资人、投行或产业资本)先设立一个只有现金、无实际业务的特殊目的收购公司(SPAC),通过IPO募集资金并在交易所上市。然后在规定时间内(通常24个月)寻找一家非上市公司进行合并(De-SPAC),使目标公司迅速实现上市,规避传统IPO的复杂流程和不确定性。1.:在开曼或特拉华注册空壳公司,注入少量种子资金。2. 阅读详情

原题链接:http://codeforces.com/contest/1042/problem/F

Leaf Sets

You are given an undirected tree, consisting of n n n vertices.

The vertex is called a leaf if it has exactly one vertex adjacent to it.

The distance between some pair of vertices is the number of edges in the shortest path between them.

Let’s call some set of leaves beautiful if the maximum distance between any pair of leaves in it is less or equal to k k k.

You want to split all leaves into non-intersecting beautiful sets. What is the minimal number of sets in such a split?

Input

The first line contains two integers n n n and k ( 3 ≤ n ≤ 1 0 6 , 1 ≤ k ≤ 1 0 6 ) k (3≤n≤10^6, 1≤k≤10^6) k(3≤n≤106,1≤k≤106) — the number of vertices in the tree and the maximum distance between any pair of leaves in each beautiful set.

Each of the next n − 1 n−1 n−1 lines contains two integers v i v_i vi​ and u i ( 1 ≤ v i , u i ≤ n ) u_i (1≤v_i,u_i≤n) ui​(1≤vi​,ui​≤n) — the description of the i i i-th edge.

It is guaranteed that the given edges form a tree.

Output

Print a single integer — the minimal number of beautiful sets the split can have.

Examples
input

9 3
1 2
1 3
2 4
2 5
3 6
6 7
6 8
3 9

output

2

input

5 3
1 2
2 3
3 4
4 5

output

2

input

6 1
1 2
1 3
1 4
1 5
1 6

output

5

Note

Here is the graph for the first example:

题解

对于每个点维护最深的叶子离自己的距离,向上合并时,将所有儿子按最深的叶子离自己的距离排序,从深到浅遍历尝试合并,如果相邻的两个距离加起来大于 k k k,便无法合并,向上传也没有意义,于是就将该儿子及其子树单独分成一个集合,答案+1,最后返回在删去所有分离的儿子后最深的叶节点离自己的距离。

代码
#include<bits/stdc++.h>
#define add(a,b) mmp[a].push_back(b)
using namespace std;
const int M=1e6+5;
int ans,n,k;
vector<int>mmp[M];
int dfs(int f,int v)
{
	if(mmp[v].size()==1)return 0;
	vector<int>tmp;
	for(int i=mmp[v].size()-1;i>=0;--i)if(mmp[v][i]!=f)tmp.push_back(dfs(v,mmp[v][i])+1);
	sort(tmp.begin(),tmp.end());
	for(int siz;(siz=tmp.size())>1&&tmp[siz-1]+tmp[siz-2]>k;++ans,tmp.pop_back());
	return tmp.back();
}
void in(){scanf("%d%d",&n,&k);for(int i=1,a,b;i<n;++i)scanf("%d%d",&a,&b),add(a,b),add(b,a);}
void ac(){for(int i=1;i<=n;++i)if(mmp[i].size()>1)dfs(0,i),printf("%d",ans+1),exit(0);}
int main(){in(),ac();}
MOOS-ivp实战:从零搭建水下机器人通信系统(Ubuntu 22.04版) 本文详细介绍了在Ubuntu 22.04系统上从零开始搭建MOOS-ivp水下机器人通信系统的完整实战流程。内容涵盖环境准备、核心安装、MOOSDB通信模型解析、自定义应用节点开发、以及调试监控工具链的使用,旨在帮助开发者快速掌握这一分布式机器人系统框架,构建稳定可靠的水下机器人通信与控制系统。 阅读详情

相关推荐

恶意代码分析实战——使用Apatedns和Inetsim模拟网络环境

恶意代码分析实战——使用Apatedns和Inetsim模拟网络环境 注:本次实验主要是《恶意代码分析实战》一书中进入动态恶意代码分析篇章的开始,主要通过Apatedns以及Inetsim来模拟为恶意代码提供其需要的网络环境,本次实验以Lab01-03.exe为例。 一、实验环境及工具。 Vmware虚拟机:win10(win7)、kali 主要工具:Apatedns、Inetsim 二、工具的安装下载 1、Apatedns:需安装至windows虚拟机客户端(win10,win7均可) 下载地址:http

妙蛙种子吃了都会妙妙秒的妙脆角的博客 7935

cf1042F. Leaf Sets

树、贪心、实现

ACoder 261

Amos实战:如何用Bootstrap法检验中介效应?附完整操作步骤

本文详细介绍了如何使用Amos软件通过Bootstrap法检验中介效应,包括模型设定、参数配置和结果解读。Bootstrap方法因其不依赖正态分布假设、统计功效高等优势,成为中介效应分析的首选方法。文章提供了完整的操作步骤和实用建议,帮助研究者准确评估变量间的中介作用机制。

zz67890的博客 1438

F. Leaf Sets(搜索 叶子分集合)

http://codeforces.com/problemset/problem/1042/F 题意: 给出一棵树,将所有叶子节点分成若干个集合,每个集合的任意两个叶子之间的距离不超过K,求集合的个数最小值。 解析: 考虑每次从最深的点开始搜索,这样可以保证搜K次搜到的点之间的距离不超过K。 证明: 复杂度的话,自己不管怎么造数据,都顶多O(N)O(N)O(N),所以直接上了。 代码: #inc...

QAQ 511

基于Zynq的便携式γ能谱仪设计与实现

数字多道分析器(DMCA)是核辐射能谱测量的核心设备,其本质是将探测器输出的模拟脉冲按幅度数字化分道,构建能量-计数分布曲线,从而支撑放射性核素识别与定量分析。其技术原理依赖高速采样、数字滤波成形、基线恢复与峰值提取等关键信号处理环节,具备高分辨率、优线性度与强抗干扰能力。在环境监测、核安全巡检与野外地质勘探等场景中,对低功耗、小型化、实时性提出严苛要求。本方案采用Xilinx Zynq-7020异构SoC架构,融合FPGA实时数字信号处理与ARM嵌入式控制,实现软硬协同优化,兼顾算法精度与工程落地性,为国

weixin_33173126的博客 190

5、OpenClaw(龙虾助手)飞书机器人完整对接指南(2026最新版)

OpenClaw v2026.2.2+ 版本,防火墙内也能正常工作,是目前最稳定、最简单的企业内部AI助手部署方案。

欢迎光临~知1而N的博客 457

别再只仿真了!手把手教你用NE555搭建实物波形发生器,实测对比Multisim结果

本文详细介绍了如何从仿真到实物搭建NE555波形发生器,并对比Multisim仿真结果与实际电路的差异。通过核心电路设计、元件选择、布局考量及常见问题诊断,帮助工程师跨越虚拟与现实的鸿沟,提升硬件设计能力。重点解析了方波、三角波和正弦波的实测挑战与优化技巧,适合电子工程爱好者与专业人士参考。

weixin_30521161的博客 437

深入解析AUTOSAR中IIC的MCAL实现与Vector配置实践

本文深入解析AUTOSAR架构中IIC总线的MCAL实现与Vector配置实践,探讨IIC在汽车电子中的特殊定位及Vector的折中方案。通过Channel与Sequence设计模式、Chain特性应用及DaVinci Configurator配置步骤,提供IIC驱动的优化与安全实现方法,助力开发者高效解决车载通信问题。

weixin_29172963的博客 407

停课(被暴踩)第一天 / CF1042 上分记

蒟蒻的垂死挣扎   part1 我打比赛好像已经上瘾了。 打这种题目小清新的手速场真的很舒服啊。锻炼代码 ( f s t ) 能力,又有切题的快感。 快醒醒这是DIV2。 就是考考思维灵敏度吧,还有构造代码什么的,就很舒服。 其实最重要的是我今天居然上了160分,比我前三次上的分还多,看来人品攒够了。   part2 我的题目感觉要翻新啊,T2打算物色一道别的题。 当然辣绝对...

Love_mona的博客 375

Python全栈入门到实战【基础篇 05】核心基础:Python的2种运行模式(交互式+命令行式)

Python代码运行模式详解:交互式与命令行式对比 摘要: Python提供两种核心运行模式:交互式(REPL)和命令行式(脚本式)。交互式模式适合快速测试语法,即时反馈结果,通过终端输入python启动,特点是无需保存、临时执行,适合验证小段代码逻辑。命令行式模式需将代码保存为.py文件后运行,适合开发完整程序,可重复执行和修改。两种模式各有优势:交互式便于学习调试,命令行式适合实际开发。掌握两种模式的使用场景和切换方法,是Python入门的关键技能,能显著提升学习效率。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 4559

里海NX二次开发3000例-专栏目录

UDO(User Defined Object)是“用户自定义对象”。应用非常广,可以用UDO创建自定义特征,也可以对NX原有的特征添加一些特殊信息,这些信息会保存在部件中,以后可以查询。还可以实时追踪NX对象,例如做3D包容盒线框自动追踪实体,做2D矩形框自动追踪图纸尺寸值,这些在下面的例子都有介绍。读者可以自己编译下面的例子,体会理解UDO的用法。------里海 20230512序号内容​链接01使用UDO在所有实体上设置更新回调​链接02使用UDO生成跟踪实体的线框​链接03删除UDO​链接。

王牌飞行员_里海的博客 7714

[CF1042F] Leaf Sets

题目传送门 这个问题可以用贪心解决。 可以发现,每个节点的所有叶子节点中,真正起约束作用的是深度最大的那个。 因为大的满足了,小的一定也满足。 这样dfs函数返回一个当前点最深的叶子的距离即可。 每次处理完所有子节点之后排个序就行了。 1 #include<cstdio> 2 #include<cstring> 3 #include<algo...

weixin_30776273的博客 203

电路设计仿真软件:Mentor Graphics_(1).MentorGraphics电路设计仿真软件概述

菜单栏:包含文件、编辑、视图、工具等菜单。工具栏:提供常用的工具按钮,如打开、保存、仿真等。原理图编辑区:用于绘制电路原理图。元件库:包含各种电路元件,支持拖拽操作。属性面板:显示选中元件的属性,可以进行参数设置。仿真控制区:用于设置仿真参数和控制仿真过程。输出窗口:显示仿真结果和日志信息。打开模型编辑器:点击“工具”菜单,选择“模型编辑器”。选择模型类型:在模型编辑器中选择模型类型,如SPICE模型。输入模型参数:根据需要输入模型的参数,如电阻值、电容值等。保存模型。

kkchenjj的博客 1924

CF 1042F Leaf Sets

贪心题 易证,在保证当前元素数量的前提下使一个大集合中的最长边最小时显然是最优情况 之后就是代码实现了 1 #include<vector> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std;...

weixin_30561177的博客 119

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

[CF1042F]Leaf Sets

题意:给定一棵$n$个点的树,将叶子节点分为数个集合使集合里点对最长距离不超过$k$,求最少集合数。($n\le1000000$) 首先我们可以想到,这道题并不是让你构造最优方案,因为只要把所有叶子节点的集合任意合并至无法操作,就一定是最优答案了 这个感性理解一下就是那么回事,我一开始做的时候就想到的 然后其实我们把叶子结点向上合并即可,只要子树内两个集合的距离不超过$k$,就把他们合起来,...

weixin_30375427的博客 78

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

CF1042F Leaf Sets(题解)

F. Leaf Sets 给定一棵n个点的树,将叶子节点分为数个集合使集合里点对最长距离不超过k,求最少集合数。 You are given an undirected tree, consisting ofnvertices. The vertex is called a leaf if it has exactly one vertex adjace...

weixin_30293079的博客 192

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

cf1042F. Leaf Sets(贪心)

题意 题目链接 给出一棵树,删除一些边,使得任意联通块内的任意点距离不超过$k$ sol 考场上想的贪心是对的:考虑一棵子树,如果该子树内最深的两个节点的距离相加$&gt;k$就删掉最深的那个点,向上update的时候只返回最深的点的深度 然而却苦于写不出代码。。。 /* */ #include&lt;iostream&gt; #include&lt;cstdio&gt;...

weixin_34082177的博客 164

CodeForces - 1042F Leaf Sets(启发式合并)

F. Leaf Sets time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standard output You are given an undirected tree, consisting of nn vertices. The ve...

LP_Cong 719

Pandas DataFrame插入操作全解析:从基础方法到性能优化实战

在数据处理与分析中,DataFrame作为核心数据结构,其增删改查操作的效率直接影响整体流程性能。理解其底层原理,特别是内存管理与数据对齐机制,是编写高效代码的关键。从数据结构角度看,DataFrame的不可变性设计虽然保障了数据安全,但也带来了性能权衡。在工程实践中,列插入可通过直接赋值、assign函数或concat方法灵活实现,而行插入则需警惕循环操作带来的性能陷阱。掌握批量处理与向量化思想,能显著提升在数据分析、特征工程等场景下的处理效率。本文聚焦pandas DataFrame的插入操作,深入探讨

weixin_30824479的博客 365
上一篇: BZOJ4025 二分图
下一篇: CF1040A Palindrome Dance
ShadyPi
博客等级 码龄9年 1万+粉丝 637原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShadyPi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值